当我使用/ bin/sh的我可以简单地通过回它通过发出命令庆典语法错误,当我尝试使用bash从sh`echo'rm -rf!(cookbooks)'| bash`
[email protected]:~$ sh
$ echo 'ls' | bash
some.sh
但是当我尝试使用此命令rm -rf !(cookbooks)
我得到这个
$ echo 'rm -rf !(cookbooks)' | bash
bash: line 1: syntax error near unexpected token `('
bash: line 1: `rm -rf !(cookbooks)'
我需要从/ bin/sh发出这个命令。从封隔器http://www.packer.io/提供脚本
if [ -d "/opt/chef/chef-solo/" ]; then
cd /opt/chef/chef-solo
rm -rf !(cookbooks)
fi
什么是你想在这里做什么? – anubhava
...实际上,我意识到(相当迟到)简单的解决方案就是使用find,而不是依赖bashisms *或* POSIX sh扭曲。 –
由于'--delete'选项是对'find'的GNU扩展,所以使用它将会与bashism相媲美。 – chepner