将文件的第一行存储到变量时出错

时间:2015-12-12 15:16:22

标签: bash

我正在使用Linux shell脚本(bash)进行基本程序

我想读取文件的第一行并将其存储在变量中。

我的输入文件:

100|Surender|CHN
101|Raja|BNG
102|Kumar|CHN

我的shell脚本位于

之下
first_line=cat /home/user/inputfiles/records.txt | head -1
echo $first_line

我正在使用bash records.sh

执行shell脚本

它抛出了我的错误

 /home/user/inputfiles/records.txt line 1: command not found

有人可以帮助我吗

2 个答案:

答案 0 :(得分:1)

该行

first_line=cat /home/user/inputfiles/records.txt | head -1

将变量first_line设置为cat,然后尝试将其余部分作为命令执行,从而导致错误。

您应该使用command substitution执行cat .../records.txt | head -1作为命令:

first_line=`cat /home/user/inputfiles/records.txt | head -1`
echo $first_line

答案 1 :(得分:1)

另一个答案解决了你犯的明显错误。但是,您没有使用惯用的方式来读取文件的第一行。请考虑一下(更有效,避免子shell,管道,两个外部进程,其中无用的cat):

IFS= read -r first_line < /home/user/inputfiles/records.txt