• 締切済み

コマンド実行結果を変数に代入できない(shell)

Kシェルを作成しており、以下のコマンドを変数に代入することができません。 DIR1=`ls ${SOURCE_FILE_PATH} | grep ${INTERFACE_ID} > /dev/null 2>&1` やりたいことは単純で、 ${SOURCE_FILE_PATH} に ${INTERFACE_ID}フォルダが存在するかを確認するために、実行結果をDIR1に格納したいだけです。 しかし、sh - xでデバッグすると、仮にフォルダがあったとしても、何も代入されず終わってしまいます。 パイプ処理やgrepを使用したコマンドを変数に代入する方法をご存知の方いらっしゃいましたらご教授願います。

みんなの回答

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

えぇと.... そもそも ls ${SOURCE_FILE_PATH} | grep ${INTERFACE_ID} > /dev/null 2>&1 では何も表示されないはずです. で, 普通「ファイルやディレクトリの存在確認」はこんな風にはしないで test か find のあとで $? をチェックします.

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

結果を/dev/nullにリダイレクトしているから空になっているだけかと。 存在を確認するという事なら、 ・grepの実行結果を$?で判定する。 ・パスが特定できるなら、-dでテストする。 ――などの書き方で済ませられそうな。

関連するQ&A