私は Chef と Ruby を使用しており、set コマンドを実行しようとしています。
setVarList = %x(set)
set と入力するだけでは問題なく動作しますが、このスクリプトを実行すると次のエラーが発生します。
/var/chef/cache/cookbooks/motd/recipes/default.rb:22: command not found: set
なにが問題ですか?
すでに述べたように、 setは bash 組み込みコマンドですが、Ruby %x() シェルはshです。
%x(echo $0)
回避策は、 CodeGnomeがコメントで提案しているように、bash を明示的に実行することです。
%x(/bin/bash -c set)