$ CMD="some_command abcdef"
$ ${CMD}
という命令を実行することは、単に
$ some_command abcdef
という命令を実行することと同様です。
しかし、
$ some_command "abc def"
という命令を、冒頭の前者のように実行するにはどのようにしたら良いのでしょうか。
仮に、
$ CMD="some_command \"abc def\""
$ ${CMD}
という命令を実行した場合、some_command
には"abc
という引数とdef"
という引数の2つの引数が渡されたことになってしまいます。つまり、"
を(BASHの構文としての)文字列を囲う記号としてではなく、文字列そのものとして認識してしまっているということです。
この方法において、"abc def"
を1つの引数として命令を実行させることはできないでしょうか。
よろしくお願いします。
$ some_command "abc def"
)のと同じ容量で扱えますね。また、コマンド全体をクォートで囲う必要がなく、エスケープされたクォートを使う必要がないので、可読性も高まりますね。非常に画期的な方法をありがとうございました。 – hrtshu Apr 04 '15 at 12:14