远程脚本上的正则表达式

时间:2012-11-09 03:26:37

标签: bash

我正在尝试在远程计算机上运行脚本(两台计算机都使用bash),使用ssh,其中包含以下行:

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

因此,当我运行ssh hostname './remove'时,我收到此错误:

  

意外令牌附近的语法错误`('

我尝试将此行附加到脚本

shopt -s extglob

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

1 个答案:

答案 0 :(得分:1)

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

要验证,请仅运行extglob,查看shopt的原始值。

注意:在我的情况下,当我直接从shell运行命令rm时设置了该值。但是当我把它放在脚本中时,它失败了。实现了从交互式shell运行时默认设置的extglob。 &安培;默认情况下,在脚本内部运行时会禁用它。