シェルスクリプトの単一クエリに複数の出力がある場合、各出力をどのように宣言しますか?

シェルスクリプトの単一クエリに複数の出力がある場合、各出力をどのように宣言しますか?

出力が一致したら、次のコマンドを実行して条件を作成したいと思います。

diff -is <(echo 'curl https://get.gravitational.com/teleport-v9.3.4-linux-amd64-bin.tar.gz.sha256') \
         <(shasum -a 256 teleport-v9.3.4-linux-amd64-bin.tar.gz)

上記のコマンドの出力は次のとおりです。

< 15c7fabe609513fdba95ff68ccc59f29502f32f4d20c163bd9ff47770b554d15 teleport-v9.3.4-linux-amd64-bin.tar.gz
> 15c7fabe609513fdba95ff68ccc59f29502f32f4d20c163bd9ff47770b554d15  teleport-v9.3.4-linux-amd64-bin.tar.gz

この場合、チェックサムは一致するため、条件に追加する各出力をどのように宣言できますか?例:出力a = =出力bの場合、チェックサムは一致します。誰でも助けてもらえればいいでしょう。

回答ありがとうございます。次の答えを試してみましたが、要求された操作を実行できました。

ベストアンサー1

私はshasumがその出力をdiff-ingする代わりに、独自の組み込みの「チェック」オプション()を使用するようにします。*.sha256shasumshasum -c

実行中:

$ echo "This is a file" > file1
$ echo "This is another file" > file2
$ shasum -a 256 file* | tee files.sha256
0b7d91193b9c0f5cc01d40332a10cf1ed338a41640bd7f045f1087628c1d7a9b  file1
0290013ed1662eda102bee144a282ffe03d226b4dd9134c251c6b3be6d69d6ec  file2


$ shasum -c files.sha256
file1: OK
file2: OK
$ echo $?
0

$ echo "damaged file" > file1

$ shasum -c files.sha256
file1: FAILED
file2: OK
shasum: WARNING: 1 computed checksum did NOT match
$ echo $?
1

このスクリプトを作成すると、shasum -cの終了コードを使用して検証が成功したかどうかを確認できます。

したがって、お客様の場合は、次のことを行います。

wget https://get.gravitational.com/teleport-v9.3.4-linux-amd64-bin.tar.gz.sha256
shasum -c teleport-v9.3.4-linux-amd64-bin.tar.gz.sha256
rm teleport-v9.3.4-linux-amd64-bin.tar.gz.sha256

または

shasum -c <(curl https://get.gravitational.com/teleport-v9.3.4-linux-amd64-bin.tar.gz.sha256)

おすすめ記事