fish shellでbashなどの「command && ok || ng」と同じ処理をさせる

bashやzshだと、以下のようにコマンドを実行することで、そのコマンドの実行結果に応じた処理を指定することができる。

コマンド && コマンドが正常終了の場合の処理 || コマンドが正常終了出ない場合の処理
blacknon@BS-PUB-DEVELOP:~$ ls test*
test.txt  test1.txt
blacknon@BS-PUB-DEVELOP:~$ ls test.txt && echo OK || echo NG
test.txt
OK
blacknon@BS-PUB-DEVELOP:~$ ls test.txt_ && echo OK || echo NG...

bashやzshでは、コマンドの結果を差し込みする場合、以下のように任意の箇所に「$(コマンド)」を記述してコマンドを実行することで、(サブシェル展開にはなるのだが)コマンドの実行結果を差し込む。 結構よく利用される方法だ。

コマンド ...$(コマンド)...
blacknon@BS-PUB-UBUNTU-01:~$ echo $0
-bash
blacknon@BS-PUB-UBUNTU-01:~$ echo $(date +%Y%m%d)_test
20170216_test