如何逐行读取变量?

时间:2013-08-27 15:30:40

标签: linux sh

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

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

1 个答案:

答案 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