shellscript

localと exit status

ハマったのでメモ. 問題 local宣言とコマンド実行を同時に行うと exit statusが適切に取れない. 例 function test() { local val=$(false) echo $? } これを実行すると "1"って表示されると思っていたんですが, "0"が表示されて しまいます. 原因 local自体…

シェルスクリプトを公開するとき, コマンド前にバックスラッシュをつけるべき

oh-my-zsh の環境で、peco-select-history が動かない - Qiita 追記 2014年 7月 7日 シェルスクリプトと書いてしまい漠然すぎましたが, ここで述べている ことが問題になるのは, .bashrc, .zshrcに関数, alias設定等がコピー される場合や, sourceコマンドで…

"set -e"に関するメモ

シェルスクリプトで #!/bin/sh set -e とすると、コマンド実行時に戻り値が 0以外になれば即座に終了 するという便利な機能があります。しかし diffコマンドのように 戻り値 0は差分なし、1は差分あり、それ以外はエラーみたいな 感じで戻り値を利用されると…

シェルスクリプトで関数が未定義かどうか確認する

シェルスクリプトで関数名を動的に作って呼び出すというものを 書いていたんですが、できあがった関数名が存在しなかった場合、 どう対応したらいいのかわからなかったので調べてみました。 typeビルトイン関数 ビルトイン関数 typeを使うことで指定した名前…

画面に80個の「=」でできた罫線を出力する

http://www.usptomonokai.jp/wp/?p=1536 画面に 80個の「=」でできた罫線を出力するワンライナーのシェルスクリプト 末尾は改行 85文字を超えてはいけない( echo ===.....=(80個)はなし ) 書いてみた 考えてみたけどそんなには出なかった。 % perl -le 'prin…