linux – 如何在单引号包围的awk语句中使用单引号?

linux – 如何在单引号包围的awk语句中使用单引号?,第1张

概述我在实现我的脚本所需的awk语句时遇到问题: rsh fooDNS ' ... BROADCAST_IP_ADDRESS=$(/usr/sbin/ifconfig $IF_NAME | grep broadcast | awk '{print \$6}') ...' 这里的问题是上面的语句包含在由单引号括起来的rsh命令中.因此,bash无法解释{print $6}周 我在实现我的脚本所需的awk语句时遇到问题:

rsh fooDNS '    ...    broADCAST_IP_ADDRESS=$(/usr/sbin/ifconfig $IF_name | grep broadcast |  awk '{print $6}')    ...'

这里的问题是上面的语句包含在由单引号括起来的rsh命令中.因此,bash无法解释{print $6}周围的单引号,这给我带来了很多问题.到目前为止,我还未能确定如何解决这个问题.

解决方法 您不能嵌套单引号,但可以结束单引号字符串,包含转义的单引号,然后重新输入引号.试试这个:

rsh fooDNS '    ...    broADCAST_IP_ADDRESS=$(/usr/sbin/ifconfig $IF_name | grep broadcast |  awk '\''{print }'\'')    ...'

尽管如此,这种引用疯狂的事情很快变得难看.如果可能的话,我建议使用scp / rcp / ftp将普通的bash脚本复制到远程,然后运行它.如果不这样做,我认为你可以使用这样的技巧,如果你不需要向脚本的stdin提供任何东西:

cat script_file | rsh fooDNS bash

(当你的脚本是普通sh兼容的时候使用rsh fooDNS / bin / sh,当然远程端没有bash.)

作为另一种选择,如果你的代码片段很短,你可以在这里使用docs:

rsh fooDNS sh <<'EOF'    ...    broADCAST_IP_ADDRESS=$(/usr/sbin/ifconfig $IF_name | grep broadcast |  awk '{print }')    ...EOF
总结

以上是内存溢出为你收集整理的linux – 如何在单引号包围的awk语句中使用单引号?全部内容,希望文章能够帮你解决linux – 如何在单引号包围的awk语句中使用单引号?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1028077.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存