awk - awk 命令意外换行符或字符串结尾
问题描述
我正在尝试查找此脚本中使用的 ${RESULT} 中的哪种值;
#!/bin/ksh
...
echo ${RESULT}|awk '{if ($0 ~ /RUNNING mode/) {print "STATUS=0"; print "PID="'${PID}'; print "INFO="$0; print '$PID' > "'${INSTALLDIR}/domain'/sample_pid.txt"} else {print "STATUS=1"; print "PID=-1"; print "INFO="$0} }'
可能导致此输出:
awk: cmd. line:1: {if ($0 ~ /RUNNING mode/) {print "STATUS=0"; print "PID="27708
awk: cmd. line:1: ^ unexpected newline or end of string
我尝试将许多特殊字符组合放入 ${RESULT} 中,但它从来没有问题。无论如何我可能会重写命令,但我很好奇 ${RESULT} 既可以作为教育点,也可以帮助我重现从测试系统报告给我的错误,否则我没有能够繁殖。
谢谢!
解决方案
awk
您的代码在如何在+ 冗余使用函数(例如print
)中调用 shell 变量方面存在问题。建议保持awk
代码不变awk '.........' Input_file
。你可以从以下开始,但由于没有给出样品,我根本没有测试过;它完全基于OP的尝试。
此外,每当您将输出写入输出文件时,最好将输出文件名放在(output file name)
echo "$RESULT" |
awk -v installdir="${INSTALLDIR}/domain" -v pid="$PID" -v outfile="sample_pid.txt" '
{
if ($0 ~ /RUNNING mode/){
print "STATUS=0\nPID=" pid "\nINFO="$0 > (installdir"/"pid"/"outfile)
}
else{
print "STATUS=1\nPID=-1\nINFO="$0
}
}'
推荐阅读
- css - 仅适用于平板电脑和手机的 CSS 规则,而不适用于台式机?
- laravel - 在流明中每分钟执行一次工作
- audio - 什么 FFMPEG 命令将以特定时间戳覆盖 2 个音频文件?
- templates - 维基媒体模板中的空间
- python - 如何在启动 Chrome 并尝试使用 Selenium 使用 ChromeDriver 访问网页时解决“获取默认适配器失败”错误
- geoserver - 重投影:wms级联还是客户端js?
- python - NiFi Parse PDF 使用 Python Tika 错误:ExecuteStreamCommand
- swift - Swift,遗传算法中的协议和泛型
- javascript - JSON中只有一个数据时返回错误的数组
- c - C - 整数输入检查