タグ

ShellScriptに関するatsushifxのブックマーク (7)

  • bashスクリプティング研修の資料を公開します - エムスリーテックブログ

    こんにちは、エンジニアリングGの中村です。 以前にこのブログにてエムスリーでの社内研修について紹介しました。今回は、この中でのbashスクリプティング講座の資料を公開します。 www.m3tech.blog 弊社の中でもいろいろな用途でbashが使われていますが、bashは簡単に利用できるもののプログラミング言語としてはバグを生みやすい、辛い言語だと思います。 ここで紹介しているのはいわゆるコーディング規則というよりも、バグ防止と可読性向上のためのルールをTips集的にまとめたものです。 bashにおいてまだまだ注意するところはありそうですが、多少なりともわかりにくいスクリプトの削減になればと期待しています。 [追記: 2018-08-22] はてブにて以下のコメントをいただきました。 bashスクリプティング研修の資料を公開します - エムスリーテックブログ bashで50行以上になった

    bashスクリプティング研修の資料を公開します - エムスリーテックブログ
    atsushifx
    atsushifx 2022/07/02
    シェルスクリプト書き始めたので
  • styleguide

    Background Which Shell to Use Bash is the only shell scripting language permitted for executables. Executables must start with #!/bin/bash and a minimum number of flags. Use set to set shell options so that calling your script as bash script_name does not break its functionality. Restricting all executable shell scripts to bash gives us a consistent shell language that’s installed on all our machi

    atsushifx
    atsushifx 2022/06/21
    Googleによるシェルスクリプトのスタイルガイド。日本語訳 https://qiita.com/yabeenico/items/72b904d4bb0b6d732a86
  • GoogleのShell Style Guideの邦訳 - Qiita

    背景 (Background) どのシェルを使うか (Which Shell to Use) Bash は実行が許可された唯一のシェルスクリプト言語である。 実行可能ファイルは #!/bin/bash と最小限のフラグで始めなければならない。シェルオプションの設定に set を利用することで、 スクリプトを bash script_name として呼び出してもその機能を損なわないようにせよ。 全ての実行可能シェルスクリプトを bash に制限することで、全てのマシンにインストールされた一貫したシェル言語を得る。 これに対する唯一の例外は、コーディング対象によって強制される場合である。この1つの例として、Solaris SVR4 パッケージは、どんなスクリプトにも plain Bourne shell であることを要求する。 いつシェルを使うか (When to use Shell) シェル

    GoogleのShell Style Guideの邦訳 - Qiita
    atsushifx
    atsushifx 2022/06/21
    wsl2での開発環境構築の参考にする
  • 環境変数 PATH に空文字があるとカレントディレクトリが指定されているのと同じ意味になる

    何だと!? タイトルのまんま。 恥ずかしながらこれ今まで知らなかった。 もしかして常識だったりする? ちなみに確認したのは Linux だけど、glibc の posix サブディレクトリ配下の execl*execvpe の挙動なので glibc 使ってればみんな一緒じゃないかな?知らんけど… 環境変数 PATH が設定されていない時 unset PATH とした状態。 この場合、PATH=/bin:/usr/bin と設定されているのと同じ意味になる(追記も参照のこと)。 当然カレントディレクトリは含まれていない。 環境変数 PATH が空の時 PATH= とした状態。 「PATH 環境変数が設定されていない時」とは異なる事に注意。 この場合、PATH=. と設定されているのと同じ意味になる。 つまり、カレントディレクトリが含まれている。 環境変数 PATH の最後が : で終わってい

    環境変数 PATH に空文字があるとカレントディレクトリが指定されているのと同じ意味になる
    atsushifx
    atsushifx 2021/09/25
    怖いのはシェルスクリプトで意図せず、::と':'を二個続けること。セキュリティホールになる
  • BASHシェルスクリプトで「キー入力待ち」プロンプトを実装する | DevelopersIO

    BASHシェルスクリプト実行中に、 例えば下記のように表示させたい場面はよくあります。 実行しますか? (y or N): ここで人間が「y(あるいはYes)」と入力しないと先に進まない、問題があればNと入力して終了したり、CTRL+Cで強制終了させたり。 そんなプロンプト機能を実装してみます。 先にネタばらしをすると、全部readコマンドがやってくれます。 例1 : 「Hit enter key!」 単に実行を一時停止して、問題がなければエンター(リターン)キーを押すことで先に進むようなシェルスクリプトは、このようになります。 #!/bin/bash : (前段階の処理) read -p "Hit enter: " (続きの処理) : 単に「Hit enter: 」と表示して処理が一時停止します。エンター(リターン)キーを押せば先に進みます。 もし前段階の処理で何かしら問題が見つかれば、

    BASHシェルスクリプトで「キー入力待ち」プロンプトを実装する | DevelopersIO
  • Linux 作業手順書からべた書きパスワードをなくすシンプルなアイディア - Qiita

    ※ 2018/07/21 追記。 お読みいただきましてありがとうございます! すみません、実はタイトルの割には「現在回しているイケてない運用をちょっとした工夫でサクッと改善する」ことを主眼としており、セキュリティのベストプラクティスではありません。。。 稿の例で挙げているコマンドのリスクにつきましては、 注意 の項を追加しましたのでご参照ください。 公開当初は「10いいねくらいもらえたら嬉しいなー」と思っていた程度だったのですが、まさかここまでたくさんの方に読んでいただけるとは。。。 もっと内容を精査しておくべきだったと反省しております。。。 いいねやコメント等反応頂けるのはとても励みになります。ありがとうございます! TL;DR 怖いですよね、セキュリティインシデント。 インフラ系でお仕事をしていると、 Linux にログインして操作する手順書を作る事が多くなります。手順書の中には認証

    Linux 作業手順書からべた書きパスワードをなくすシンプルなアイディア - Qiita
    atsushifx
    atsushifx 2018/07/18
    Linuxなんだし、こういったパスワードを外部から引っ張ってきて入力するツールが作れそうなんだけど。外部パスワードへのアクセスにはsshや記事のreadでセキュリティを確保するとして
  • デッドマンスイッチによるiptablesの安全な変更 - ろば電子が詰まつてゐる

    屋で「Red Hat Linux Firewalls」のを手に入れたのでパラパラしていたら、面白いiptablesのネタを見つけました。のでちょっと紹介します。 Red Hat Linux Firewalls (redhat PRESSシリーズ) 作者: ビルマッカーティ,Bill McCarty,中川和夫,ヴァインカーブ出版社/メーカー: ソフトバンククリエイティブ発売日: 2003/04メディア: 単行購入: 1人 クリック: 5回この商品を含むブログ (4件) を見る このは2003年発行ということで、既にいろんな記述が古くなっているのは確か。しかしiptablesやファイアウォールの基的な考え方などはそうそう変わるもんでもないので、今読んでも参考になります。 リモートホストiptables設定時の悩み RedHatやCentOSなどRH系Linuxのリモートホストにs

    デッドマンスイッチによるiptablesの安全な変更 - ろば電子が詰まつてゐる
    atsushifx
    atsushifx 2014/07/06
    変更を加える前に失敗したときのために元に戻せるようにしておくと便利。できれば自動的にできるようにスクリプト化するとなおよい。今回はFirewallだけど、サーバ管理などの基本として考えておくべき
  • 1