我在使用
read
bash
). 请看以下片段:
在这里
echo $line
IFS=:
结果是
echo a b c
-
好 啊
IFS=:
line=a:b:c
echo $line | { read -ra arr; declare -p arr; }
输出:
declare -a arr='([0]="a b c")'
回音$行
结果
echo a:b:c
IFS
和
阅读
如果S=:
并正确填充数组-
:
unset IFS
line=a:b:c
echo $line | { IFS=: read -ra arr; declare -p arr; }
输出:
declare -a arr='([0]="a" [1]="b" [2]="c")'
unset IFS
line=a:b:c
echo $line # outputs correctly a:b:c
IFS=: read -ra arr <<< $line
declare -p arr
a:b:c
declare -a arr='([0]="a b c")'
在这里
<<< $line
<<< a:b:c
自从
$line
不包含任何来自
国际单项体育联合会
.
阅读
然后应该使用
如果S=:
但结果只有一个元素,用空格分隔。
我在用
GNU bash, version 4.1.17(1)-release (sparc-sun-solaris2.11)
这里的字符串曾经被分词。引用
解决
echo $line ...
这个例子很好用。
在
GNU bash, version 4.4.19(1)-release (x86_64-pc-linux-gnu)