在 shell 脚本中,我对多个 URL 运行 nslookup
有时某些url返回无法解析错误。我需要在变量中捕获这些错误。
这里是 nslookup 的代码,它获取返回的 IP 地址
output=$(nslookup "$URL" | grep Add | grep -v '#' | cut -f 3 -d ' ' | awk 'NR>1' )
现在在相同的变量输出中,我想捕获错误
nslookup: can't resolve
Stdout 我正在将其捕获到文件中。
我尝试了不同版本的重定向 - 2>&1 和其他版本,但错误未分配给变量。我不希望错误被重定向到单独的文件,但希望将其记录在上面的输出变量中。
最佳答案
只要使用 awk,就可以大大简化事情
nslookup "$URL" 2>&1 |
awk -e '/Add/ && !/#/ && NR > 1 {print $2}'
-e '/resolve|NXDOMAIN/ { print "error" }'
为了清楚起见,一行已分成三行。我无法重现您所说的 2&>1
问题,也不认为它会失败。
关于shell - nslookup 捕获变量中的 stderr 并显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16421025/