我在UNIX中编写代码将txt文档翻译为html。 我传入的第一个参数是要在标题中使用的文件中的行数。 第二个是要翻译的文件。
到目前为止,我有:
numLinesInTitle=$1
lineCount=`wc -l $2`
firstInput=`head -$numLinesInTitle $2`
到目前为止这一切都有效。 这是我遇到问题的地方:
numBodyLines=`expr $lineCount - $1`
它表示expr语法错误
答案 0 :(得分:2)
您遇到的问题可能是您的$lineCount
变量比您想象的要多。
尝试运行wc -l /etc/passwd
,看看你得到了什么。现在取出结果(整个结果)并将其提供给expr
,看看你得到了什么。 (剧透:“语法错误”。)
问题是wc
命令会显示文件的名称以及该文件中的行数。为避免这种行为,您可以要求它告诉您来自STANDARD INPUT的行数。例如:
lineCount=`wc -l < $2`
这应该解决这个特殊问题。以下是一些可以解决未来问题的提示。
lineCount=$(wc -l < $2)
会更好。lineCount=$(wc -l < "$2")
会更好。