我认为这是一个非常简单的问题。我以前在脚本中多次使用过以下命令而没有问题。
display=/some/file/with/data
sed -i "s/$(more ${display} | grep 110 | gawk '{ print $3 }')/"replacestring"/g" ${display}
此命令从未出现过问题。
我创建了一个简化所需内容的脚本,并提供以下代码:
displayText=$(more ${display} | grep 110 | gawk '{ print $3 }')
我一直在接收
第2行:语法错误:意外的文件结束。
我对Linux非常熟悉所以问题一直很令人恼火,因为答案已经逃脱了。请协助。
答案 0 :(得分:1)
不确定您使用more
的原因。
你也有awk脚本的反引号,你应该有单引号。
displayText=$(cat ${display} | grep 110 | gawk '{ print $3 }')
你会被告知这是一个无用的cat(不需要cat命令,因为grep可以读取文件)。你可以这样做:
displayText=$(grep 110 ${display} | gawk '{ print $3 }')
由于awk也可以搜索,因此可以进一步简化为:
displayText=$(gawk '/110/ {print $3}' ${display})