• ベストアンサー

シェル変数とパイプ

シェルの変数にパイプを入れた文字列(コマンド)を格納し、それを実行したいのですが、「|」がただの文字として扱われているようでうまく実行できません。 どのように記述すれば、パイプとして認識してくれるのでしょうか? 次のようなことをやりたいのですが、このようにエラーになってしまいます。 # setenv cmd "ls | grep test" # $cmd ls: |: そのようなファイルやディレクトリはありません ls: grep: そのようなファイルやディレクトリはありません ls: test: そのようなファイルやディレクトリはありません

質問者が選んだベストアンサー

  • ベストアンサー
  • ballville
  • ベストアンサー率47% (233/487)
回答No.1

echo $cmd | sh ではどうでしょう。 sh はcshでもtcshでもOKだと思いますが。

yyywww
質問者

お礼

早速のご回答ありがとうございます!! なるほど!そうやるんですね。 大変助かりました。

その他の回答 (1)

  • bender
  • ベストアンサー率45% (108/236)
回答No.2

set cmd="ls | grep test" eval $cmd

yyywww
質問者

お礼

早速のご回答ありがとうございます!! そういう手もあるんですね。 いろいろと勉強になりました!

関連するQ&A