bash 3でサブシェルコマンドの結果を配列に取得する方法は?
私はこれを達成するためにbash 4で次のようにmapfileを使用してきました。
mapfile -t myarray < <(someScript.sh)
ただし、私が使用している一部のサーバーにはbash 3のみがインストールされており、bash 4にアップグレードすることはできません。
Bash 4で同等のコマンドは何ですか?
配列の行を繰り返し、各行の内容に対して操作を実行できる必要があります。
ベストアンサー1
readarray() {
local i=0
unset -v "$1"
while IFS= read -r "$1[i++]"; do :; done
eval "[[ \${$1[--i]} ]]" || unset "$1[i]"
}
例:
$ readarray a < <(seq 10)
$ printf '%s\n' "${a[2]}"
3