2

これはばかげた簡単なはずですが、私はそれを機能させることができないようです!新しい行に基づいて配列に分割したい文字列があります。

これは基本的に私がやろうとしていることです。

echo $devices
serial1 device
serial2 device

arr=$(magic_function $devices)
echo ${arr[0]}
serial1 device
echo ${arr[1]}
serial2 device
4

1 に答える 1

3

(IFS内部フィールドセパレーター) は、単語が bash でどのように分割されるかを決定します。引用符で囲まれていない展開は常に分割されます。デフォルトでは、これは \t、\n、および ' ' です。\n だけに設定すると、単語を改行のみで分割できます。

IFS=$'\n' arr=( $(yourfunc "$devices") )

新しいバージョンの bash (4.0+) の別のオプションは、mapfileコマンドです。

mapfile -t arr < <(yourfunc "$devices")
于 2013-03-16T19:50:40.427 に答える