2005-04-15 晴れ,最近朝夕少し寒い [長年日記]
_1 bashメモ
IFS
内部フィールド区切り文字 (Internal Field Separator) です。展開を行った後に単語を分割する場合や、組み込みコマンドの read を使った時に行を単語に分割する場合に使われます。デフォルト値は ``<空白><タブ><改行>' ' です。
read
while read line; do __some commands__ done < INPUT_FILE
とある時は,INPUT_FILE の中身を一行ずつ読みだし,$lineに代入する.つまり
while read line; do echo $line done < INPUT_FILE
の出力は cat INPUT_FILE と同じ.
組み込み関数set の -- オプション
このオプションの後に引き数が続いていない場合には、位置パラメータの設定が取り消されます。それ以外の場合には、位置パラメータに arg の残りが設定されます。これらに - で始まるものが含まれていても、オプションではなく位置パラメータとして扱われます。
つまり
set -- $arg OPT1="$1" OPT2="$2" OPT3="$3" OPT4="$4"
とすることで,$argを関数引数のように参照できるって事やね.
配列
$ array[0]=uhyo $ array[1]=uga $ array[2]=dorya $ echo ${#hoge[*]} 3 $ echo ${#hoge[0]} 4 $ echo ${#hoge[1]} 3 ${#hoge[2]} 5 $ echo ${#hoge[@]} 3
@もしくは*を指定すると現在の配列の要素数を返す.数字を指定すると配列に含まれる文字列の長さを返す.
array[${#array[*]}]=$line
は${#newfile[*]}が現在の要素数を返す.配列が空の場合は0となるため,配列の最初に$lineを,次に来たときには1つ含まれているのでarray[1]に$lineを代入することになる.つまり,$lineを配列の後ろに順次追加していくことになる.
なんでbash
いや,最近ホンマようシェルスクリプト(特にbash)を読んでる.それにしても1kもあるスクリプトを読むのはかなりしんどい.かなりバグってそうなところもいっぱいあるし.シェルスクリプトはとりあえず動くからいい,みたいな感じのところがいっぱいあるから嫌い.
_4 地域コミュニティ
今年度は自治会の副会長と自治会の福祉社会委員の兼任.
今日はその福祉社会委員の地域コミュニティの会議があったので出席.それにしてもつまらん.本当にやる気があるのか?正直時間のムダでした.機会があれば行事に参加してくれといわれたが,あれだとやる気にならん.
一応任期は1年間で来年3月までなのだが,4月にしてすでに今年の活動は終わったも同然.