0

我有一个变量,回显时如下所示:

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

4

1 回答 1

2

你需要使用一个herestring:

read -a names <<< $myVar

< $myVar告诉 shell 从 的内容命名的文件中读取$myvar,即,一个名为var1\nvar one\nvar_one\nvar_one (1)(带有文字换行符)的文件。显然该文件不存在,因此您收到错误消息。 <<< $myVar告诉 shell 读取变量本身的内容作为输入,而不是由它命名的文件。

如果外壳没有此处字符串,则必须使用echo它:

echo "$myVar" | read -a names
于 2013-08-27T15:36:52.420 回答