1

我正在尝试使用 ssh 在远程机器(两台机器都使用 bash)上运行脚本,该脚本具有以下几行:

cd /home/invitado/
rm -r !(Desktop|Downloads|Videos|Pictures)

所以当我运行时ssh hostname './remove',我得到这个错误:

意外标记 `(' 附近的语法错误

我尝试将此行附加到脚本

shopt -s extglob

但是我仍然有同样的错误,那我该怎么办?谢谢你的帮助。

4

1 回答 1

1

shopt -s extglob应该是之前rm -r !(Desktop|Downloads|Videos|Pictures)

extglob要验证,通过运行 just 来查看原始值是多少shopt

注意:就我而言,该值是在我rm直接从 shell 运行命令时设置的。但是当我把它放在脚本中时,它失败了。意识到从交互式 shell 运行时默认设置 extglob。& 在脚本内运行时默认禁用。

于 2012-11-09T05:33:18.537 回答