Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

できればシェルスクリプトなんて書きたくないんだけど,まだまだ書く機会は多い.シェル芸やワンライナーのような凝ったことではなく,他のひとが使いやすいシェルスクリプトを書くために自分が実践していることをまとめておく. ヘルプメッセージ 書いてるシェルスクリプトが使い捨てではなく何度も使うものである場合は,本体を書き始める前に,そのスクリプトの使い方を表示するusage関数を書いてしまう. これを書いておくと,後々チームへ共有がしやすくなる.とりあえずusage見てくださいと言える.また,あらかじめ書くことで,単なるシェルスクリプトであっても自分の中で動作を整理してから書き始めることができる.関数として書くのは,usageを表示してあげるとよい場面がいくつかあり,使い回すことができるため. 以下のように書く. function usage { cat <<EOF $(basename ${0})
私はシェルスクリプトの大ファンで、他人のスクリプトから面白い方法を学ぶのが大好きだ。最近、SSHサーバの2要素認証を簡単にするためのauthy-sshスクリプトに出会った。このスクリプト群を見まわしていて、みんなと共有したいたくさんのクールなことを見つけた。 出力に色付けする 出力文字列を、成功した時は緑に、失敗した時は赤に、警告は黄色に色づけしたいと思うことはたくさんあるだろう。 NORMAL=$(tput sgr0) GREEN=$(tput setaf 2; tput bold) YELLOW=$(tput setaf 3) RED=$(tput setaf 1) function red() { echo -e "$RED$*$NORMAL" } function green() { echo -e "$GREEN$*$NORMAL" } function yellow() { e
OSコマンドの基本動作として、パイプでコマンドを連結すると最後に実行されたコマンドの戻り値が特殊変数"$?"に格納される。 #[例1] コマンド1 | コマンド2 echo $? # コマンド2の戻り値が格納 各コマンドの戻り値の取得方法 ${PIPESTATUS}で取得可能 #[例2] exit 1 | exit 2 | true | false echo ${PIPESTATUS[@]} 1 2 0 1 ${PIPESTATUS}の使いどころ 「例1」で説明すると、「コマンド1が正常終了していること」がコマンド2の前提条件である為、コマンド1のコマンドも含め戻り値チェックが必要な場合。 具体例 パイプでつないだコマンドに戻り値が"0以外"が存在する場合はエラー出力しexitする動作を実装 #[例3] コマンド1 | コマンド2 | コマンド3 echo ${PIPESTATUS[@]}
This book and its on-line version are distributed under the terms of the Creative Commons Attribution-NoDerivs 1.0 license, with the additional proviso that the right to publish it on paper for sale or other for-profit use is reserved to Pearson Education, Inc. A reference copy of this license may be found at http://creativecommons.org/licenses/by-nd/1.0/legalcode. AIX, AS/400, DB/2, OS/2, System/
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く