如果要删除当前目录中除“ myfile”以外的所有内容,可以使用
rm -r !("myfile")
但是,如果我将其放在脚本(称为cleanup
)中:
#!/bin/bash
rm -r !("myfile")
我得到:
pi@raspberrypi:~/tmp $ ./cleanup
./cleanup: line 2: syntax error near unexpected token `('
./cleanup: line 2: `rm -r !("file2")'
如果我跑步
ps -p $$
我可以看到我的终端正在使用bash,
PID TTY TIME CMD
1345 pts/3 00:00:02 bash
所以我不清楚是什么问题。
笔记:
rm -r !("cleanup"|"myfile")
,但是错误消息是相同的。该模式是扩展的glob。许多发行版都为交互式外壳启用了此功能,但非交互式外壳没有启用。你可以用!(pattern-list)
$ shopt extglob
extglob on
$ bash -c 'shopt extglob'
extglob off
要修复脚本,您必须将其打开:添加
shopt -s extglob
在它的开始。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句