!("file1")在bash脚本中不能使用模式匹配,但可以在命令行上使用。
!("file1")
例如:
ls !("file1"|"file2")
这将列出目录中除file1和以外的所有文件file2。
file1
file2
在脚本中执行该行时,将显示此错误:
./script.sh: line 1: syntax error near unexpected token `(' ./script.sh: line 1: ` ls !("file1"|"file2") '
不管用什么rm -v !("file1")。发生相同的错误。这是怎么回事,为什么这在脚本中不起作用?
rm -v !("file1")
默认情况下,您尝试使用的扩展glob语法是关闭的;您必须在要使用它的每个脚本中分别启用它。
shopt -s extglob
脚本不应该使用,ls尽管我想您在这里只是将其用作占位符。
ls