我试图在ksh脚本中从下面的文件中获取行数。但它什么也没有回报:
filerecordcount= $((`wc -l <../data/act.dat`))
我也试过这些:
filerecordcount= `wc -l <../data/act.dat`
filerecordcount= $(wc -l <../data/act.dat)
当我打印变量时,它不会在变量中打印该值。
print "Record Count in .dat file : $filerecordcount." 1>&2;
但是当我在命令提示符下尝试相同时,它返回计数
wc -l<../data/act.dat
答案 0 :(得分:2)
你不必在分配部分后给出空格。使用下面的一个。它会工作正常。但是不要忘记打印变量filerecordcount。
更新:
filerecordcount = $((``wc -l&lt; ../ data / act.dat`))
答案 1 :(得分:1)
简化简化。您的反引号正在执行命令扩展,它们的输出由$((...))
作为算术表达式处理。这有点多余。
filerecordcount=$(wc -l < ../data/act.dat)
=
之后没有空格,只有一级命令扩展。
或者,您可以使用流程替换:
read filerecordcount < <(wc -l < ../data/act.dat)
或者您甚至可以在没有子shell的情况下使用循环执行此操作:
filerecordcount=0
while read junk; do ((filerecordcount++)); done < ../data/act.dat