◎bash のIFS を改行だけにする。
IFS=$'\n'
元に戻す。
IFS="$'\n'$'\t' "
-
-
- -
-
HOGE_BIN="/bin/hoge"
HOGE_OPT="-a -c"
HOGE_DAT=(A B C)
HOGE_DAT[3]="D"
IFS_SAVE=$IFS
IFS=$'\n'
val=( $( eval "$HOGE_BIN $HOGE_OPT ${HOGE_DAT[@]}" ) )
IFS=$IFS_SAVE
-
-
- -
-
フィールドセパレータを改行だけにした後は、スペースがセパレータとして扱われなくなってしまうので、
これは↓変数が展開されずに期待した動作はしない。
val=( $( $HOGE_BIN $HOGE_OPT ${HOGE_DAT[@]} ) )
従って強制的に、"eval"する必要がある。
◎bash の配列で。
$ dat=(a b c) 要素の一括定義
$ echo ${#dat[@]} 要素の個数
3
$ echo ${dat[@]} 要素の表示
a b c
$ declare -p dat
declare -a dat='([0]="a" [1]="b" [2]="c")'
$ dat[${#dat[@]}]=d 末尾に追加
$ echo ${#dat[@]}
4
$ declare -p dat
declare -a dat='([0]="a" [1]="b" [2]="c" [3]="d")'