出力ラインを一致させてテストスクリプトが成功しました。

出力ラインを一致させてテストスクリプトが成功しました。

フォルダを確認して3行を出力するスクリプトがあります。

1st line : Changes to the subfolders 2nd line : Changes to the number of files 3rd line : Changes of file size in the folder

以下は出力の例です。

1 sub-folders added Number of files didn't change Files size didn't change

コマンドを使用して1行ずつ出力を確認し、スクリプトをテストしたいと思います。

それはまるで

line 1 == "1 sub-folders added" && line 2 == "Number of files didn't change" && line 3 == "Files size didn't change" then print success if it matches.

どのコマンドがこれを実行できますか?

ありがとう

答え1

headと を使用して、対応する行tailと値を取得できます。

例:

OUTPUT=`yourcommand` ; if [ "`echo \"$OUTPUT\" | head -n 1`" = "1 sub-folders added" ] && [ "`echo \"$OUTPUT\" | head -n 2 | tail -n 1`" = "Number of files didn't change" ] && [ "`echo \"$OUTPUT\" | tail -n 1`" = "Files size didn't change" ]  ;then echo "success" ; else echo "error" ; fi

(キーワードは不明ですdidn't。バックスラッシュを使用してアポストロフィをエスケープする必要があるかもしれません(例\':))。

このすべての内容を一文に圧縮したいようですからこうです。

最初の行には、数字「1」の前にスペースがあります。出力またはこのスクリプトを変更できます。

関連情報