&tag(Bash);
*目次 [#k301f9e1]
#contents
*参考情報 [#v39c8200]
-[[OKLab - Bourneシェルスクリプト入門(+bash):http://www.oklab.org/program/sh.html]]
-[[bash 入門:http://www.hpc.cs.ehime-u.ac.jp/~aman/linux/bash/]]
*パラメータ [#y79b6f9d]
,$0,コマンド名
,$1,1つ目の引数
,$2,2つ目の引数
,$*,残りの引数全部
,$# ,引数の個数

*変数 [#id0375d1]
**参考 [#oe39a741]
-[[bash シェルスクリプト -PG's PocketArms:http://himana.natsu.gs/bash-001.html]]
**基本 [#u13bee70]
-小文字でも大文字でも良い。
-宣言時は$を頭につけない。両端にスペースをいれない。
-参照時は$を頭につける。厳密に使いたい時は変数名を{}で囲う必要もある。
#pre{{
a="XYZ"
echo "$a"
echo "${a}"
}}
-空白がはいった変数のことを考えると、変数使用時常にダブルクォートで囲ったほうが安全かも。

**デフォルト値 [#nf01d82c]
-${var:-デフォルト値}で設定できる。
#pre{{
var="a b c"
str=${var:-"d e f"}
echo $str
str=${var2:-"d e f"}
echo $str
}}

*制御構造 [#k5839b22]
**if then else [#h8d19587]
-[[test と [ と [[ コマンドの違い - 拡張 POSIX シェルスクリプト Advent Calendar 2013 - ダメ出し Blog:http://fumiyas.github.io/2013/12/15/test.sh-advent-calendar.html]]にあるようにまじめに考えるとかなりめんどくさい。"[["は後から追加されたらしい。
-文字列の比較。"["の両方にスペース。"="の両方にスペースが必要。thenを続ける場合、"]"のあとに";"が必要。
-"-o"は"or"
#pre{{
if [
str="a b c d e"
if [ "$str" = "a b c" -o "$str" = "a b c d" ]; then
        echo ok
else
        echo ng
fi
}}


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS