我写了一个bash脚本,我在其中定义了一个这样的变量:
var=$(cat $file_path | head -n $var2 | tail -n 1 | cut -f1)
其中$file_path
只包含文件的路径,而$var2
是一个int,例如1或2.因此,为变量赋予文件行号var2的第一个字段的值。
当我从命令行运行它时,它工作得很好。但是,在运行包含此命令的脚本时,我收到错误
cat:写错误:管道坏了
知道为什么会这样吗?
没有必要使用cat
,因为head
采用文件名参数。
var=$(head -n $var2 $file_path | tail -n 1 | cut -f1)
实际上,没有必要使用任何这些命令。
var=$(awk -v line=$var2 'NR == line { print $1; exit }' $file_path)