Bashの同じ行にANDとORを使用できますか?

Bashの同じ行にANDとORを使用できますか?

私はコードをコンパイルするときに通常次のことを行います。

make remake 2> error.txt || less error.txt

その後、less何も表示されない場合は、コードをディレクトリにコピーしますexe

コンパイルが成功したら、コピーコマンドが自動的に実行されることを願っています。たとえば、次のようにできます。

make remake 2> error.txt && cp ./bin/out.out ../exe/out.out

ただし、コンパイルに失敗すると、エラーが少なくなるこの便利な機能が失われます。

2つを組み合わせることは可能ですか?

確かに

make remake 2> errors.txt || less errors.txt && cp ./bin/out.out ../exe/out.out

コンパイルコマンドが失敗した場合は、&&終了するたびにcpコマンドが実行されるため動作しません(0を返すと仮定)。less

1つのコマンドラインで私がしたいことを達成できますか?

ベストアンサー1

あなたのため:

make remake 2> errors.txt && cp ./bin/out.out ../exe/out.out || less errors.txt

おすすめ記事