2

私はかなり長いスクリプトを書いています (または、私が長いと考えるもの - おそらく数時間でできるでしょう)。私は基本的に、名前のファイルを含むファイル (.restore.info という名前) を持っています。スクリプトの一部で、「.restore.info でファイル名が見つからない場合、「エラー: 復元されたファイルが存在しません」と表示される」というテストを行います。したがって、コマンド ラインに次のように入力すると、次のようになります。

sh MYSCRIPT filename

.restore.info ファイルで文字列ファイル名を検索し、何も見つからない場合は、エラー メッセージを生成する必要があります。

基本的に、このコードの一番上の行を UNIX の bash ステートメントに変換する必要があります。

If grep $1 .restore.info returns an exist status of 1; then
  echo “Filename does not exist!”
fi

前もって感謝します!もっと明確に説明する必要があるかどうか尋ねてください。私が最善の説明者ではないことはわかっています。1 分以内に返信します。(+担当者とベストアンサーはもちろん与えられます!)

4

3 に答える 3

2

grepおそらく、ゼロ以外の終了ステータスで終了するかどうかだけを気にします。

if ! grep -q "$1" .restore.info; then
    echo "Filename does not exist!"
fi

ただし、特定の終了ステータス (この場合は 1) を本当に気にする場合:

if ! grep -q "$1" .restore.info && [[ $? -eq 1 ]]; then
    echo "Filename does not exist!"
fi
于 2013-06-19T20:30:41.090 に答える
0
grep -l 'filename' .restore.info
if [ $? = 0 ];then
   echo "found it"
else 
  echo "not found"
fi
于 2013-06-19T21:17:34.380 に答える
0

使用するgrep -q

grep -q "filename" .restore.info && echo "found match"

また

! grep -q "filename" .restore.info && echo "not found"
于 2013-06-19T20:30:16.947 に答える