我有一个变量,当回声出现时如下所示:
var1
var one
var_one
var_one (1)
我想把它逐行读入一个数组,但是当我这样做的时候,我得到了一个错误:
-sh: cannot open var1
var one
var_one
var_one (1): File name too long
我使用这个命令:
read -a names < $myVar
最佳答案
您需要使用herestring:
read -a names <<< $myVar
< $myVar
告诉shell从一个由$myvar
的内容命名的文件中读取,即一个名为var1\nvar one\nvar_one\nvar_one (1)
的文件(带有文本换行符)。很明显,文件不存在,所以您得到了错误。<<< $myVar
告诉shell将变量本身的内容读取为输入,而不是由它命名的文件。如果shell没有herestring,则必须
echo
它:echo "$myVar" | read -a names
关于linux - 如何逐行读取变量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18469763/