我正在尝试在远程计算机上运行脚本(两台计算机都使用bash),使用ssh,其中包含以下行:
cd /home/invitado/
rm -r !(Desktop|Downloads|Videos|Pictures)
因此,当我运行ssh hostname './remove'
时,我收到此错误:
意外令牌附近的语法错误`('
我尝试将此行附加到脚本
shopt -s extglob
但我仍然有同样的错误,所以我该怎么办?谢谢你的帮助。
答案 0 :(得分:1)
shopt -s extglob
应该在rm -r !(Desktop|Downloads|Videos|Pictures)
之前。
要验证,请仅运行extglob
,查看shopt
的原始值。
注意:在我的情况下,当我直接从shell运行命令rm
时设置了该值。但是当我把它放在脚本中时,它失败了。实现了从交互式shell运行时默认设置的extglob。 &安培;默认情况下,在脚本内部运行时会禁用它。