電子書籍の厳選無料作品が豊富!

Kシェルを作成しており、以下のコマンドを変数に代入することができません。

DIR1=`ls ${SOURCE_FILE_PATH} | grep ${INTERFACE_ID} > /dev/null 2>&1`

やりたいことは単純で、 ${SOURCE_FILE_PATH} に ${INTERFACE_ID}フォルダが存在するかを確認するために、実行結果をDIR1に格納したいだけです。

しかし、sh - xでデバッグすると、仮にフォルダがあったとしても、何も代入されず終わってしまいます。

パイプ処理やgrepを使用したコマンドを変数に代入する方法をご存知の方いらっしゃいましたらご教授願います。

A 回答 (2件)

えぇと.... そもそも


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

結果を/dev/nullにリダイレクトしているから空になっているだけかと。



存在を確認するという事なら、

・grepの実行結果を$?で判定する。
・パスが特定できるなら、-dでテストする。

――などの書き方で済ませられそうな。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!