當我使用/ 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