我正在尝试检查文件的行数是否大于 2 我编写了以下脚本:
(wc -l myfile | cut -c 1) -gt 2
但是我收到错误:预期标记“-gt”附近的语法错误,有什么想法吗?
答案1
要测试文件中是否包含两行以上:
if [ "$( wc -l <file )" -gt 2 ]; then echo 'more than two lines'; fi
你错过了$
前面的(...)
,也错过了if [ ... ]
。您需要$( ... )
命令替换,因为您想对命令的输出执行某些操作。
有些人更喜欢以下语法:
test "$( wc -l <file )" -gt 2 && echo 'more than two lines'
要不就
[ "$( wc -l <file )" -gt 2 ] && echo 'more than two lines'
通过将文件提供给 的标准输入wc
,我们避免了麻烦cut
。