Quantcast
Channel: Bashタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 2722

[Bash] if の condition で command result を判定するのってどうやって書くのが正しいの?

$
0
0

こんばんわ。
今年の3月から Web エンジニアをやってます
じょーどいです。専門はバックエンド (Java) ですが、最近はフロントエンド (Nuxt.js) もやってます。

先日Twitter で 「やる気」が出ない時に5秒で動き出す方法と言う投稿を見たので早速5秒で動き出して書いてみました。
寝る前にふと思い立った勢いで書いているため、
今回初投稿ですが、スマホから書いております。
多少見辛い箇所があると思いますが、ご了承下さい。

前置きが長くなりましたが、ここから本題に入ります。
先日、業務の PR レビューにて、
以下のコードに対してある指摘を受けました。

if!(nginx -t);then()

「この書き方あまり見ないけどあってるの?」

、、、ふむ?🤔

実際、この書き方で期待通りの動作はします。
(ちなみに nginx -tは Nginx の conf ファイルの syntax check やテストを行うコマンドです)

ただ、気になったので色々調べてみると、

if[!(nginx -t)];then()

こんな書き方や、

if[!$(nginx -t)];then()

こんな書き方もできることがわかりました。
更には、

if! nginx -t;then()

これでも期待通りに動きます。

、、、結局どれが正しいの?🥺
と言う状態に陥っちゃいました。
ただ色々調べていくうちに、最終的にはこちらの投稿を参考にして、

if[!$(nginx -t)];then()

この書き方で fix しました。

結局のところ「これが正解だぁ!」と言えるような
参考文献も見つからず、真相は分からないままとなってしまいました。

shell ってシンタックスは特殊だし、Google で調べてもなかなか引っかからないから本当難しいなーと実感しました。

もし正しい書き方をご存知の方がおりましたら、
コメントにてご指摘頂けると幸いです。

最後まで見ていただきありがとうございました!


Viewing all articles
Browse latest Browse all 2722

Trending Articles