传递线以切割并分配给变量(Bash)

时间:2016-03-21 23:57:05

标签: bash shell stdin cut

我可以读入并打印每个名字,如下所示:

while read input;
do
    echo $input | cut -d ',' -f 1
done

但如果我尝试将其分配给变量并打印它就不起作用。它只输出三个空白行。 (我的文件中只有三条记录)。我也尝试了其他方法,但我附上了我最近的尝试。

while read input;
do
    firstName=$input | cut -d ',' -f 1
    echo $firstName
done

这是我的用户列表:

Jet,Black
Faye,Valentine
Radical,Edward

2 个答案:

答案 0 :(得分:0)

搞清楚。之前我曾尝试过这个解决方案,但忘记了$ input前的回声。

while read input;
do
    firstName=$(echo $input | cut -d ',' -f 1)
    echo $firstName
done

答案 1 :(得分:0)

你需要把它放在一个子shell中。

您应该可以执行以下操作:

firstName = $(echo $ input | cut -d“,” - f 1)