[フレーム]
はてなブックマークアプリ

サクサク読めて、
アプリ限定の機能も多数!

アプリで開く

気に入った記事をブックマーク

  • 気に入った記事を保存できます
    保存した記事の一覧は、はてなブックマークで確認・編集ができます
  • 記事を読んだ感想やメモを書き残せます
  • 非公開でブックマークすることもできます
適切な情報に変更

エントリーの編集

loading...

エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。

タイトルガイドライン

このページのオーナーなので以下のアクションを実行できます

タイトル、本文などの情報を
再取得することができます
コメントを非表示にできます コメント表示の設定

ブックマークしました

ここにツイート内容が記載されます https://b.hatena.ne.jp/URLはspanで囲んでください

Twitterで共有

ONにすると、次回以降このダイアログを飛ばしてTwitterに遷移します

412users がブックマーク コメント 65

ガイドラインをご確認の上、良識あるコメントにご協力ください

0 / 0
入力したタグを追加

現在プライベートモードです 設定を変更する

おすすめタグタグについて

よく使うタグ

いい加減シェルスクリプトで [ $? -eq 0 ] や [ $? -ne 0 ] なんて エラー処理を書くのはやめよう! - Qiita

412 users qiita.com/ko1nksm

ガイドラインをご確認の上、良識あるコメントにご協力ください

0 / 0
入力したタグを追加

現在プライベートモードです 設定を変更する

おすすめタグタグについて

よく使うタグ

はてなブックマーク

はてなブックマークで
関心をシェアしよう

みんなの興味と感想が集まることで
新しい発見や、深堀りがもっと楽しく

ユーザー登録

アカウントをお持ちの方はログインページ

記事へのコメント65

  • 注目コメント
  • 新着コメント
kkobayashi
うーん言いたいことは分かるがコマンドを処理から切り離したい気持ちはある

その他
kobito19
関数(ここではコマンドだけど)の実行と結果の評価を1行で行うな教徒なので...

その他
rna
知らんかったとおもったらcsh系ではそう書けないのか。自分がUnix触り始めた頃はcshかtcshが主流だったからなぁ。

その他
d0i
そもそもshellscriptを書くのをやめたいです、 先生...

その他
iww
コマンドの実行を if文の中に書きたくないんだよ! という話

その他
dorapon2000
"[ $? -eq 0 ] や [ $? -ne 0 ] なんて書くのをやめようと言っているのは、私だけではありません。良いシェルスクリプトを書くのに必須の ShellCheck でも同じように指摘されます。"

その他
punychan
もとから書かねーよ。終了コードが重要なケースならcaseで分けるだろうし。/さすがに || や && はワンライナーくらいでしか使わんが。

その他
xlc
私はifすら使わず&&と||で連結するかな。シェルになれると$?を使う機会は減る。set -eしたら使えないしね。ブコメ: コマンドの正常終了は0を返すことで統一されてます。

その他
iamamachine
いい加減シェルスクリプトを書くのはやめよう!

その他
shingo-sasaki-0529
これ普通に書くな。なんでだろ。コマンドの実行と、その結果による分岐を分けて書いたほうがデバッグしやすいからかも。どういうときにどの終了ステータスを返すかがコマンドによってマチマチだからってのもある。

その他
shin0O
言いたいことはだいたい星がついてた

その他
y-kawaz
単に趣味の問題。

その他
UME
言いたいことはわかるつもりだけど、if [ $? -eq 0 ]; でもそんなに見にくくはないし、むしろなにをやってエラーなのかは行が分かれてるおかげでわかりやすくなってるように思います。

その他
tmatsuu
ifの後がコマンド実行なのは知ってたけど、 if now=$(date) と書いても拾えることはしらなかった。へー。まぁ自分はついついret=$?を書いてしまうんですが。

その他
ku__ra__ge
「if判定を通ると破壊的な操作が実行される」のは非直感的なのでは......と思ったが、「シェル言語の if はどちらかと言えば try ... catch に近い」か。なるほど。

その他
tybalt
意図の読み取りやすさや修正のしやすさを考えて、敢えて冗長に書くことも多い

その他
mohri
大学のときシェルスクリプトを書けって課題が出て、よくわからんままログインシェルの文法に即して提出したら「またcshだ」って言われたのおもいだした(当時はSunがまだBSDでログインシェルはcsh系だった)

その他
richmikan
完全なる宗教。ShellCheck原理主義。コマンドをif文の中に入れずに可読性を追求する宗派だってあるだろうに。

その他
rryu
コマンドを実行したいだけで分岐したい訳じゃないんだという意図を盛り込むとエラーの分岐を別に書きたくなる。分岐のためにコマンドを実行するならそう書くべきだと思う。

その他
honma200
とりあえず途中のデータは一時変数に保持しておきたいデータMOTTAINAI教徒がいましてな

その他
tetsuya_iwatanai
ついやっちゃうのは俺の記憶力が悪いためかな

その他
ducktoon
シェルスクリプトでコマンドを並べる以上のことはするな

その他
iamamachine
iamamachine いい加減シェルスクリプトを書くのはやめよう!

2024年08月21日 リンク

その他
poponponpon
シェルスクリプトは全てを忘れた頃に使う場面が出てくるの繰り返しなので、毎回新鮮な気持ちでググってます。使いたくない。

その他
chiroruxx
esacも書きたくないです

その他
Iridium
シェルスクリプトはすぐに難読化するし、実行内容が追いにくいから可能な限り使いたくない。言語自体アップデートしてよ。あと開発環境もなんとかして

その他
als_uz
"[" じゃなく "[[" を使えって話かと思ったら違った様子 / 冒頭で set -eu しちゃうんで...

その他
mjy
ブコメの「ifすら使わず&&と||で連結する」のもありだと思うが、これは if else とは違うので要注意。if else ならば実行されるのはif節かelse節のどちらかだが、&& || は違う。例: 「true && ls doesnt-exist.txt || echo False」

その他
aobon700
シェルスクリプトガチ勢ではないので、ちょっとでも困ったらGPT先生に聞いてます

その他
AmaiSaeta
自分の書き方を考えてみると、 `grep` の様な検証・判定を行う場合は `if` の条件として書くが、環境を変える(ファイルコピー等)場合は分けて、無意識に使い分けてる。一般的なプログラミングでどうかに引き摺られてる

その他
taguch1
いいかげんシェルスクリプトやめろ

その他
mas-higa
場合によるけど something || error_handling って書くこともある

その他
kzm1760
確かにそうすねというのと自分は使い分けているんだけど、記事が全体的に煽り口調なので肯定出来ないし読む気が失せてしまうのが勿体無い。煽り記事は別の意図が透けるのでまともに読まないようにしてるから。

その他
napsucks
このへん色々嫌い

その他
getcha
へー。知らんかった(か過去に見ていても目が滑っていたか)。コマンドが長い時とかは、使いにくいから、使える時に使えば良いでしょう。ぐらいのものじゃないかな。複数の処理系使ってる人もいるだろうし(私だ)

その他
ka-ka_xyz
にょも〜〜〜〜〜〜〜〜〜〜

その他
ya--mada
どうだろうなぁあ?

その他
n_vermillion
if文の中に直接処理を埋め込むんじゃないって俺の中でwarningが出てしまう。そのif処理はcpのリターンコードを判定する処理であってcpを実行するところと分けないとメンテナンスが云々。まず$?を変数に格納しちゃうわ...。

その他
craftone
リターンコード0がtrueと評価されるのが気持ち悪いというのはある

その他
hevohevo
良いシェルスクリプトを書こうというモチベーションがそもそもない。複雑で見づらくなりそうなら別のスクリプト言語を使うから。

その他

注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています

リンクを埋め込む

以下のコードをコピーしてサイトに埋め込むことができます

プレビュー
アプリのスクリーンショット
いまの話題をアプリでチェック!
  • バナー広告なし
  • ミュート機能あり
  • ダークモード搭載
アプリをダウンロード

関連記事

usersに達しました!

さんが1番目にブックマークした記事「いい加減シェルス...」が注目されています。

気持ちをシェアしよう

ツイートする

いい加減シェルスクリプトで [ $? -eq 0 ] や [ $? -ne 0 ] なんて エラー処理を書くのはやめよう! - Qiita

はじめに [ $? -eq 0 ] や [ $? -ne 0 ] は冗長でデメリットしかありません。非常に多く見かける書き方... はじめに [ $? -eq 0 ] や [ $? -ne 0 ] は冗長でデメリットしかありません。非常に多く見かける書き方ですが、1979 年に Bourne シェルが広く公開された時からこのようなコードは必要ありませんでした。実際に当時はこのような書き方は使われておらず、このような書き方をしなければならなかった歴史的な経緯などはありません。これはなぜか広まってしまった良くない書き方です。 優れたコードとは無駄がないシンプルなコードです。丁寧なコードとは無駄な処理を書くことではありません。[ $? -eq 0 ] や [ $? -ne 0 ] は書かないほうが、簡単で読みやすくわかりやすくなります。優れた文法を持つシェルは短いコードで正しく動作し、良い書き方は最短の時間と最小の手間で目的を達成することができます。コマンドのエラー処理を簡潔に書くことができるのが、シェル言語の優れている点の

ブックマークしたユーザー

  • shin0O2024年11月14日 shin0O
  • rydot2024年09月29日 rydot
  • techtech05212024年09月21日 techtech0521
  • bayan2024年09月19日 bayan
  • kwy2024年09月15日 kwy
  • kutakutatriangle2024年09月10日 kutakutatriangle
  • yggdra_w2024年09月04日 yggdra_w
  • yancy19692024年09月03日 yancy1969
  • ryutaro_mizokami2024年09月01日 ryutaro_mizokami
  • cku2024年09月01日 cku
  • zinziroge2024年09月01日 zinziroge
  • shimojyu2024年09月01日 shimojyu
  • yuiseki2024年08月31日 yuiseki
  • okumuraa12024年08月30日 okumuraa1
  • y-kawaz2024年08月29日 y-kawaz
  • moonblogger2024年08月28日 moonblogger
  • J1382024年08月28日 J138
  • tayutaedomo2024年08月28日 tayutaedomo
すべてのユーザーの
詳細を表示します

ブックマークしたすべてのユーザー

同じサイトの新着

同じサイトの新着をもっと読む

いま人気の記事

いま人気の記事をもっと読む

いま人気の記事 - テクノロジー

いま人気の記事 - テクノロジーをもっと読む

新着記事 - テクノロジー

新着記事 - テクノロジーをもっと読む

同時期にブックマークされた記事

いま人気の記事 - 企業メディア

企業メディアをもっと読む

はてなブックマーク

公式Twitter

はてなのサービス

Copyright © 2005-2025 Hatena. All Rights Reserved.
設定を変更しましたx

AltStyle によって変換されたページ (->オリジナル) /