2024-01-07

anond:20240107192256

あんさんDockerとか言ってるしあんまりシェルスクリプトの凄まじい現場とか見たこと無いのでは。

シェルってのは人間の向けのコマンドの出力結果をawkとかsedで分解して後続につなげるもんなんで出力結果が変わると困る。ただ、manにはこういう処理で使えるほどの詳細な挙動は書いてないことが多い。

そして、シェルは出力結果おかしくても型とかじゃなくて文字列処理だから割りと後続処理が実行できちゃうおかしい箇所を発見するのも時間がかかる。

そういうことが無いようにバリデーションのコードとか書き始めると複雑で何百行にもなるシェルスクリプトができて、これが一層壊れやすいし保守開発がめんどいことになる。

記事への反応 -
  • シェルで使われてるコマンドってドキュメント化されてない機能多すぎて入出力が全然信頼できない、特定の条件でコマンドの出力結果がずれ込んだり変な文字が入ったりとか経験ある...

    • 別に高級なスクリプト言語でも標準ライブラリやインタプリタのバグは踏むときは踏むし マイクロタスクな標準コマンドは高級言語のインタプリタほど頻繁なセキュリティアップデート...

      • 横からだがシェルスクリプトやばい増田へ。これほど丁寧に解説して貰えるのはありがたいことなのでよく読んで理解しておきなよ 君の好きそうなところだとDockerのコンテナイメージ...

        • ほかの回答でも書いてるがシェルプロセス経由するとかは別に気にしてないんだよね。 正直技術のツギハギでもソフトウェア工学のテストの要件満たせてれば問題ないんだけど、 曖昧さ...

          • 曖昧さっていうのが何かわからん。マイナーなコマンドを後から入れたとかじゃなくて標準的なコマンドを使うとして、manで出てくる情報で何が不足しているかピンとこないんだが

            • あんさん、Dockerとか言ってるしあんまりシェルの凄まじい現場とか見たこと無いのでは。 シェルってのは人間の向けのコマンドの出力結果をawkとかsedで分解して後続につなげるもんなん...

              • そのような「シェルスクリプトの凄まじい現場」があることは、 シェルスクリプトをプロダクションで動かしてる会社はやばい という主張を正当化しません 膨大な数のプロジェクト...

              • 別の人が規模や複雑さが高くなるなら別の言語に切り替える的なこと書いてたでしょ。保守のコストが深刻になってきたら別の実装に切り替えるのは普通のことだと思うが。そういう用...

                • 例えば実行速度までマネージメントしていたり、応答性能からハードウェアの性能要件割ったら予防交換の為にシステムから切り離すようなレベルならそういう意識でも結構だけど、現...

                  • 話のつながりが全然分からなくなったぞ!各文の内容とシェルスクリプトがどう関わってくるのか説明してくれないか?

              • sedとawkなんてバチバチにPOSIXで仕様定義されてる代表格じゃないの?

            • きみは一回既存企業のフルマネージド化みたいな現実のサービス構造に触れた方がいいと思うよ。 世の中きみが思ってる程小規模でもなければ単純でもないし、たかだか200ノード程度の"...

              • 現実のプロダクションに触れてればシェルスクリプトをプロダクションで使ってるだけでヤバいなんて発言自体が出てこないと思うが……

                • 逆に聞くけどシェルスクリプトをほとんど使ってない現場とかは経験したことある? cronとかじゃなくてワークフロー管理ツールを使ってたりとか

                  • それフロントがごまかされてるだけで中はバチクソにシェルスクリプト走ってません? インフラ屋の方がずっと多い増田でサービス屋が寝言いってたの?

                    • それフロントがごまかされてるだけで中はバチクソにシェルスクリプト走ってません? 何を想定したのかわからないけど、シェルスクリプトを経由しているようなものは想定してなか...

                      • ワークフロー管理ツールからはなにを実行するの?シェルコマンド? シェルスクリプトでプログラミングするのがまずいケースがあることは分かるけど程度問題なんだよな。 ちなみに...

                  • 普通にワークフロー管理ツールからシェルスクリプトキックするけどな。これまで経験した現場だとJP1が多いな。

                  • Webで操作できればシェルとか要らないと思ってる系の素人さんかな。ここも解散が近いな

                  • きみ運が良かったねぇ 先月アドベントカレンダーってあちこちで技術記事ぽこぽこ生えてた時期にやってたらこんなに伸びなかったよ

                  • ワークフロー管理ツールと言われてGUIとかWebを想定するやつがなんでこんなに多いんだ

                    • cronでなく…という文脈的に複数のサーバーのバッチ処理を一元管理するJP1とかJenkinsとかRundeckとかそういうメジャーなやつを想像したんだけど、何ていう製品を想像したの?

              • それは君が言ってる現実の範囲が狭すぎるわ。。。単にシェルスクリプトの運用ノウハウがない人たちの集まりだがフルマネージド化というプロジェクトの特質によりシェルスクリプト...

      • 高級なスクリプト言語でも標準ライブラリやインタプリタのバグは踏むときは踏むし バグとかじゃなくて、開発者が把握してない動作の話なんだが、 シェルスクリプトに使用したコ...

        • シェルスクリプトに使用したコマンドのすべての挙動を把握している? 使用予定のオプションだけでも出力結果のすべてのパターンを把握している? 標準ライブラリのすべての関数...

          • 標準コマンドは標準入出力を通してプログラム同士で連携することを想定して作成されており、 入出力の破壊的変更を気軽にコミットしようとしたら秒でハネられます Linuxのシステ...

            • 標準コマンドは標準入出力を通してプログラム同士で連携することを想定して作成されており、 入出力の破壊的変更を気軽にコミットしようとしたら秒でハネられます Linuxのシス...

              • 頻繁にアップデートは正しくて最新版を使うのが正義だと思ってそう 何がどうなっているか最近見えるようになったよその業界と違ってそのコードはクソだからやめたまえってずっとや...

              • 多分、ソフトウェア工学でいう検証とかソフトウェアテストの話と、ライブラリやコマンドにバグがあるかどうかという話を取り違えている所が話が擦り合わないポイントな気がするね...

                • 話を取り違えている所が 見たこと無いにもかかわらず 論点先取の詭弁というやつですね   あなたこそ使っているコマンドのコミット履歴を見たことありますか? UNIXのコマンドな...

        • 横からだがシェルスクリプトで使用してるコマンドの仕様を把握するのなんて高級言語で使用するAPIの仕様を把握するのと同じぐらい基本的で当たり前のことだよ。manっていうコマンド...

    • 分かったから、分かった分かった。じゃあ君はrustで書いてなさい

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん