/bin/sh を使用すると、エコーするだけで bash からコマンドを発行できます。
vagrant@vagrant:~$ 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 からこのコマンドを発行する必要があります。
パッカーの @anubhava http://www.packer.io/プロビジョニング スクリプト
if [ -d "/opt/chef/chef-solo/" ]; then
cd /opt/chef/chef-solo
rm -rf !(cookbooks)
fi