インストールする一部のソフトウェアでチェックサムを実行するコマンドは次のとおりです。
echo "85762db0edc00ce19a2cd5496d1627903e6198ad850bbbdefb2ceaa46bd20cbd install.sh" | sha256sum -c
sha256sum
しかし、コマンドと一緒に使用したい最初。したがって、私たちはheredocを使用して以下を達成します。
sha256sum -c << EOF
85762db0edc00ce19a2cd5496d1627903e6198ad850bbbdefb2ceaa46bd20cbd install.sh
EOF
しかし、今、すべての内容を一行で書きたいと思います。だから、私は次のようにします。
sha256sum -c << EOF ; 85762db0edc00ce19a2cd5496d1627903e6198ad850bbbdefb2ceaa46bd20cbd install.sh ; EOF
しかし、これはうまくいきません。しかし、してはいけないセミコロンが;
「別のコマンドを実行したい」を意味する場合は動作しますか?
この順序でインポートされますが、別の方法で1行に書き込むことはできますか?そうでなければ、なぜ各行で何をすべきかを伝えることはできませんが、一行では何をすべきかを教えてくれませんか?
ベストアンサー1
しかし、セミコロンは機能しないのですか? 「他のコマンドを実行したい」という意味ですか?
いいえ、正確には;
「別のコマンドを実行します」という意味ですが、単一のコマンドの途中に挿入するからです。あなたのコマンドは次のとおりです
sha256sum -c << EOF
85762db0edc00ce19a2cd5496d1627903e6198ad850bbbdefb2ceaa46bd20cbd install.sh
EOF
多くではなく注文です。セミコロンで区切ることができず、ここでドキュメントがどのように機能するかは別々の行を想定しているため、1行で書くことはできません。ただし、一部のシェル(例bash
:ここに文字列がありますこれがあなたが探しているものかもしれません:
sha256sum -c <<< "85762db0edc00ce19a2cd5496d1627903e6198ad850bbbdefb2ceaa46bd20cbd install.sh"
文字列は、文字列をコマンド(またはファイル記述子、しかし気にしないでください)への入力として渡す簡単な方法です。上記の内容は同じだと思います。
printf '%s\n' "85762db0edc00ce19a2cd5496d1627903e6198ad850bbbdefb2ceaa46bd20cbd install.sh" | sha256sum