Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

シェルコマンドでifなしで前のコマンドが成立した時に次のコマンドを実行する

とある事情により、if文やtest([)を使わずにファイルが存在するか確認して次のコマンドを実行するという奇怪な処理を実装する必要がでてきました。
その時の調査メモです。

実際のところ

手っ取り早い方法としてlsで存在を確認し
ファイルが存在しないとエラー出力がされるので消しときます。

存在するファイルをみると、続くechoが呼び出されます

$ ls -1 real.file 2>/dev/null && echo 1
real.file
1

中身を呼び出さないでいいなら、標準出力も虚空行き

$ ls real.file >/dev/null 2>/dev/null && echo 1
1

存在しないファイルを呼び出すと、期待通りechoは実行されません

$ ls nil.file 2>/dev/null && echo 1