タグ

Bashとシェルスクリプトに関するwasaiのブックマーク (6)

  • bash の select は令和の時代も役に立つ, その一例 - ようへいの日々精進XP

    tl;dr man bash 例 若干の Kubernetes クラスタを選択したい Kubernetes Pod を選択したい 以上 tl;dr ホントにちょっとした運用ツールを bash で作っていて, 複数の選択肢をリストアップしてメニューとして選択出来るようにしたいなーと思っていたら, bash には select 文という超絶便利な構文が用意されていたので使ってみました. man bash https://linuxjm.osdn.jp/html/GNU_bash/man1/bash.1.html より引用させて頂きつつ, 重要だなと思ったところをかいつまんで. select name [ in word ] ; do list ; done in に続く単語のリストが展開され、要素のリストが生成されます。 展開された単語の集合が番号付きで標準エラー出力に出力されます。 「in

    bash の select は令和の時代も役に立つ, その一例 - ようへいの日々精進XP
  • bash の危険な算術式 - どさにっき

    ■ bash の危険な算術式 _ 使ってる人がいちばん多いだろうからタイトルでは bash としてるけど、ここで取り上げることは zsh および ksh 一族(家 ksh、pdksh、mksh)にも該当する。ash、dash などでは該当しない。 _ 以下のシェルスクリプトには脆弱性がある。わかるだろうか。 #!/bin/bash # "品目,単価,個数" の形式の CSV を読んで、"品目,合計金額" の形式で出力する csv="foo.csv" while IFS=, read item price num; do echo "$item,$((price*num))" done < "$csv" これ、細工された CSV ファイルをわせることで、任意コードの実行ができてしまう。数ある脆弱性の中でもとくにヤバいやつだ。どこが穴なのかというと、タイトルにもあるとおり算術式なのだが、し

  • コマンドラインツールを書くなら知っておきたい Bash の 予約済み Exit Code - Qiita

    上記の表の通り,Exit Code 1, 2, 126〜165, 255 は特別な意味を持ち,スクリプトやプログラム内で exit に指定するパラメータとしては避けるべきである.とりわけ,Exit Code 127 はトラブルシューティングで混乱の元である("command not found" で終了したのか,プログラム固有のエラーなのか区別できなくなる).しかしながら,多くのスクリプトが exit 1 を一般的な実行を続行できないエラーとして使っている.Exit Code 1 は Bash の一般的なエラーを含め,とても多くのエラーで発生しうるので,デバッグの時に切り分けが大変になるだろう. Exit Code を体系立てて定義する試みはある(/usr/include/sysexits.h)が,これは C と C++ プログラマー向けである.スクリプトに関しても同様な感じにするのが適切

    コマンドラインツールを書くなら知っておきたい Bash の 予約済み Exit Code - Qiita
    wasai
    wasai 2016/09/21
    いかん、結構知らなかった。
  • bash スクリプトの先頭によく書く記述のおさらい - Money Forward Developers Blog

    こんにちは。 マネーフォワードでアグリゲーション開発を担当しています中川です。 今回のブログは、私が bash スクリプトを書く際に心がけている事のおさらいをします。 知ってて当たり前のことかも知れませんが、意外と理解されていないアレです。 では、私が bash スクリプトを書く際によく使う記述を一つずつ紹介します。 2種類の shebang シェルスクリプトの一行目に必ず記述する #! で始まる行を shebang と言います。 bash スクリプトの shebang は、bash を絶対パスで指定する方法と、env を使って指定する方法の二種類あります。 bash を絶対パスを指定する方法 #!/bin/bash env を使ってを指定する方法 #!/usr/bin/env bash 前者は /bin/bash が使われます。 (/bin/bash が存在しなければスクリプトの起動時に

    bash スクリプトの先頭によく書く記述のおさらい - Money Forward Developers Blog
  • bashのTips色々 - Qiita

    概要 bashの記法は独特なものが多く毎回ググってしまうのでまとめて(と言いつつまとまりがないですが。。。)おこうと思います。 ある程度まとまってからpostしようとか思ってたらごちゃごちゃになっちゃいました。 bashで使えるという意味なのでposixシェル共通のネタも混ざってます。 随時更新します。参考になれば幸いです。 参考 man bash リファレンスマニュアル Advanced Bash-Scripting Guide カッコ色々 bashでは色々なカッコがありますが、よく違いが分からず使っていたりするのでまとめてみます。 []と[[]] []はtestコマンドのaliasです。[[]]じゃないとできないこととしては、以下のようなものがあります。 空白を含む文字列をクォートしなくてOK var='abc 123' # []の中だとクォートしないとエラーになる [ $var =

    bashのTips色々 - Qiita
  • 1