SSHを介して2つのコマンドを順次実行したいと思います。対話型シェルはありません。 2番目のコマンドは最初のコマンドが成功した場合にのみ実行する必要がありますが、その行はスクリプト内にあるため、2番目のコマンドがこのように実行されない場合はユーザーフレンドリーなフィードバックを受けたいと思います。その後、スクリプトの残りの部分は引き続き実行される必要があるため、ここではexit
待つことはできません。
&&
たとえば、ブール演算子を使用して失敗した場合は実行をfoo && bar
ブロックしbar
、失敗した場合にのみ実行できることを知っています。ところがお互いにどう似合うかちょっと混乱しますね。foo
bar || baz
baz
bar
それらを追加します。
(SSH経由で実行され、インタラクティブシェルは必要ありません)
- 実装する
foo
bar
foo
成功した場合にのみ実行baz
foo
失敗した場合にのみ実行し、実行をブロックします。bar
ssh user@host "foo && bar || baz"
今説明した内容を実行する正しい方法ですか?
ベストアンサー1
あなたの例を使うfoo && bar || baz
とbaz
bar
または foo
失敗する。あなたの説明によると、これはあなたが望むものではありません。if
目標を達成するために、次の説明を使用できます。
if foo; then
bar
else
baz
fi
または、一行で書きたい場合は、次のようにします。
if foo; then bar; else baz; fi