日頃の学習メモ。

シェル

シェルログイン初期設定ファイルシェル起動初期設定ファイルシェル変数環境変数引数返り値
C-shell系[csh,tcsh].login.cshrcset name = "value"setenv name$argv[1]$status
Bourne Shell[sh,bash]/etc/profileなしname="value"export name$1$?
  • 「.login」ログイン時に一度だけ読み込まれるので、一度設定すればすむものを設定。(環境変数、端末設定など)
  • 「.cshrc」シェル起動時に毎回読み込まれるため、上記以外(最小限)を設定。

コマンド成功時に次のコマンドを実行

command1 && command2

コマンドエラー時に次のコマンドを実行

command1 || command2

ヒアドキュメント

  • "-"を指定すると、データ中の行頭のタブが無視されるためインデントでの表示が可能。
command <<-EOF
〜コマンドへ渡すデータ〜
EOF

エラーメッセージをファイルへ出力

command 2> filename

エラーメッセージと標準出力の両方をファイルへ出力

  • "2>&1"はファイルハンドル2(標準エラー出力)をファイルハンドル1(標準出力)へリダイレクトする事を示す。
command >filename 2>&1

エラーメッセージを出力させない

command 2>/dev/null

標準出力を出力させない

command >/dev/null

関数

#関数の定義
func_name() { 
              command;
       local var_name #関数内でのローカル変数を定義 ※solaris未サポート
              return 0     #終了コード0で呼び出し元へ戻る
       echo $#     #関数に与えられた引数の総数を表示
       echo $1     #関数に与えられた引数1を表示($1〜$9を使用可)
 }

#関数の実行
func_name
引数について
  • 与えられた引数の総数は$#にて参照可能
  • 10以上の引数を利用する場合は$1〜$9を超過するため"shift"コマンドの利用が必要

文字列比較

  • 式の中で変数を参照する場合は必ず「""」で囲む
if [ expression ]; then ... fi
比較演算式
-n string文字列stringの長さが0より大きい時に真
-z string文字列stringの長さが0の時に真
string1 = string2二つの文字列が等しい場合に真
string1 != string2二つの文字列が等しくない場合に真

整数演算

expr expr1 \* expr2
数値比較
num1 -ep num2num1とnum2が等しい時に真
num1 -ne num2num1とnum2が異なる時に真
num1 -gt num2num1がnum2より大きい時[>]に真
num1 -ge num2num1がnum2より大きいか、等しい時[=>]に真
num1 -lt num2num1がnum2より小さい時[<]に真
num1 -le num2num1がnum2より小さいか、等しい時[=<]に真

浮動小数点の計算

  • scaleを設定し、小数点以下の精度を変更する。(デフォルトは0)
echo 'scale=5 ; sqrt(1/3)' | bc

シェル作成時の規約

  • 引数チェックを行う

このページへのコメント

UDHY2z Fantastic blog post.Thanks Again.

0
Posted by seo thing 2013年12月19日(木) 10:31:54 返信

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Wiki内検索

Menu

ここは自由に編集できるエリアです。

管理人/副管理人のみ編集できます