我有一个变量,当回显时如下所示:
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
答案 0 :(得分:2)
你需要使用一个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