" program files " のような空白を含むパス名を持ったコマンド全体を、変数に保持しててそれを実行したい時 そのままだと動かない。 ## これが実行できない。 cmd='ls ~/Library/Application\ Support/' $cmd 空白を含むパス名を入れたコマンドを文字列として、それを実行しようとするとエスケープの処理で頭を悩ますことになる。 eval を使う cmd='ls ~/Library/Application\ Support/' eval $cmd または、sh 経由にする cmd='ls ~/Library/Application\ Support/' sh -c "$cmd": 参考資料 https://stackoverflow.com/questions/836334/executing-commands-containing-space