てきとうなメモ

本の感想とか技術メモとか

Bash

bashのスクリプト読み込みの動き

www.iimc.kyoto-u.ac.jp https://www.iimc.kyoto-u.ac.jp/services/comp/pdf/file_loss_insident_20211228.pdf bash は、シェルスクリプトの実行中に適時シェルスクリプトを読み込みます。この挙動によ る副作用を認識できておらず、実行中のスクリプトが存…

set -eはどこまで有効なのか

シェルスクリプト(bash)はコマンドが失敗しても次のコマンドを実行してしまうので怖い→set -eしておけという話はよくあるが、実際どこまで有効なのか。 基本 コマンドの戻り値が0になった時にシェルを終了する #!/bin/bash set -e echo "before false" false…

bashでUnicodeのコードポイントを扱う

echo(ビルトインコマンド)を使うのと $ echo -e '\u3042' あ$'string'を使う方法がある $ echo $'\u3042' あバージョン4からみたいだが。あと、bashそのものではないけどGNU coreutilsのprintfつかうとコードポイントを指定して出力できるけどね。 $ printf …

extquote

bashで$'string'と入力すると、文字列の内部のANSI Cライクなエスケープシーケンスを解釈してくれるという機能がある。で、こちらの本の中でそれはextquoteと呼ぶと書いてあってあったので、呼び名があるんだと思ったのだが。シェルプログラミング実用テクニ…

bashのFlorian's patchとアップデート時の再起動

Shellshock関係でbashをアップデートした後にbashを利用しているプロセスを再起動するかどうかという話。 Mitigating the shellshock vulnerability (CVE-2014-6271 and CVE-2014-7169) - Red Hat Customer Portal RHELの文書はちょっと混乱していて最初は再…

Shellshockの攻撃をModSecurityで防ぐ

今回のShellshock問題の対策としては普通にbashのアップデートで良いのだけども、RedHatにModSecurityで防ぐ方法が載っていた。 The following mod_security rules can be used to reject HTTP requests containing data that may be interpreted by Bash as…

bashの脆弱性(CVE-2014-6271, CVE-2014-7169)

CVE - CVE-2014-6271 Bash Code Injection Vulnerability via Specially Crafted Environment Variables (CVE-2014-6271, CVE-2014-7169) - Red Hat Customer Portal これはひどい。こんな感じで環境変数に設定したスクリプトを実行してしまう。 $ env x='()…

bashで一回でもエラーが発生したらスクリプトをエラー終了する

some_command if [ $? -ne 0 ] then echo "failed to execute some_command" exit 1 fi とか毎回やるのはめんどいので、 err_handler() { echo "failed to execute '$BASH_COMMAND'" exit 1 } trap err_handler ERR some_command ... とやればいいかtrapはシ…

bashの'\n'と';'の違い

これもOK。となると、次もOKでしょうよ、当然。 for x in 1 2 3; do; echo $x; doneガーン、ダメなんだってぇ。 syntax error near unexpected token `;' シェルスクリプトのセミコロンの打ち所がわからん - 檜山正幸のキマイラ飼育記 for文の改行が';'に置…

bashのbrace expansion

Some examples and what they expand to: {aa,bb,cc,dd} => aa bb cc dd {0..12} => 0 1 2 3 4 5 6 7 8 9 10 11 12 {3..-2} => 3 2 1 0 -1 -2 {a..g} => a b c d e f g {g..a} => g f e d c b a Bash Brace Expansion | Linux Journal 最初のやつは知ってい…