シェルプログラミング 変数
ナビゲーションに移動
検索に移動
シェルプログラミング 変数
変数
- 変数は宣言せずに使用
- すべて文字列として扱われる
- 大文字小文字を区別
- 変数の前に$をつけることで、値を取得できる
- 変数に値を割り当てる場合以外$を使う
- echoで内容を出力できる
- 等号(=)の前後に空白を含めてはいけない
ソース
msg=Hello echo $msg
結果
Hello
ユーザの入力
- readコマンドを使用すると、ユーザからの入力を変数に格納できる
ソース
echo your name ? read username echo your name is $username
結果
your name ? yagi your name is yagi
クォート
- 二重引用符内の$変数は値が展開される
- 引用符内の$変数は値が展開されない
- \$は$をエスケープ
myvar="Hello"
ソース | 出力 |
---|---|
echo $myvar | Hello |
echo "$myvar" | Hello |
echo '$myvar' | $myvar |
echo \$myvar | $myvar |
環境変数
環境変数 | 説明 |
---|---|
$HOME | ホームディレクトリ |
$PATH | コマンド検索パス |
$PS1 | コマンドプロンプト |
$IFS | 内部フィールドセパレータ。シェルが入力を読むときに区切りに使用する文字 |
$0 | シェルスクリプトの名前 |
$# | 渡されたパラメータ数 |
$$ | プロセスID |
- env
パラメータ変数
パラメータ変数 | 説明 |
---|---|
$1、$2・・・ | スクリプトに渡されたパラメータ |
$* | すべてのパラメータを1つの変数で表したもの $IFS使用 |
$@ | すべてのパラメータを1つの変数で表したもの $IFS使用しない |
ソース(hoge)
IFS= echo "$1" echo "$2" echo "$*" echo "$@"
結果
$ sh hoge aaa bbb ccc aaa bbb aaabbbccc aaa bbb ccc
上記はこの本からの覚書。
非常にわかりやすく説明されている良書
© 2006 矢木浩人