shellscriptを勉強したのでまとめます。
変数
$n : n番目の引数を格納する。 引数は.shファイル arg1 ...
のように渡す。
$0 : 自身のパスを格納している。(相対・絶対パスによって値が異なる)。
$@ : 全ての変数が格納されている。
$? : 直前に実行したコマンドの結果(0か0以外)を返す。
$# : 引数の個数を格納。
例えばファイルの中身が以下のようなものだとして、
variable.sh
#!/bin/bashecho$2echo$0echo$@echo$#
./variable.sh arg1 arg2
を実行したら、
arg2
./variable.sh
arg1 arg2
2
となる。
$?について
exec.sh
#!/bin/bash
./variable.sh
echo$?
上のようなファイルを作り、./exec.sh
を実行すると、
./variable.sh
0
直前に実行したコマンド./variable.sh
が正常に実行できたので 0 が帰ってくる。
(引数は指定していないから表示はされない)
配列
作成 : array=('value1' 'value2' ...)
追加 : array[n]='valeu'
削除 : unset array[n]
array.sh
#!/bin/bashname=('Taro''Jiro''Hanako')
name[3]='Saburo'
name[1]='James'unset name[0]
このファイルを実行した場合、
Taro, Jiro, Hanakoが定義される→Saburoが追加される
→JamesがJiroの位置に挿入される→0番目であるTaroが消える。
ということは配列の中身はJames Hanako Saburo
となる。
さらに、
array.sh
~~ ~~ ~~
echo${array[@]}#全ての要素を表示echo${!array[@]}#各要素のindex番号を表示echo${#array[@]}#配列の個数を表示
これを実行すると、
James Hanako Saburo
0 1 2 3
4
と出力される。
基本的なものだけまとめました。
お役にたったら幸いです。