Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个变量,回显时如下所示:
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 读取变量本身的内容作为输入,而不是由它命名的文件。
< $myVar
$myvar
var1\nvar one\nvar_one\nvar_one (1)
<<< $myVar
如果外壳没有此处字符串,则必须使用echo它:
echo
echo "$myVar" | read -a names