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

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

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

我有执行这个awk语句的问题,我需要我的脚本:

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

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

linux按列组合两个文件

如何在unix中每行的末尾添加文本

读两个关键字之间的线

使用sed,line cuts来提取sql insert

sed:replace一段文字

您不能嵌套单引号,但可以结束单引号字符串,包括一个转义的单引号,然后重新输入引号。 尝试这个:

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

尽管如此,这种引用疯狂很快就变得难看了。 如果可能的话,我建议使用scp / rcp / ftp将正常的bash脚本复制到远程,然后运行。 如果不这样做,我想你可以使用这样的技巧,如果你不需要给脚本的标准输入提供任何东西:

cat script_file | rsh fooDNS bash

(使用rsh fooDNS /bin/sh如果你的脚本是简单的兼容的,并且远程端没有bash,当然。)

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

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

每次用'''替换嵌入的单引号。 从理论上讲,你可以这样做:

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

第一个'结束当前单引号字符串; 该序列添加一个单引号; 最后'重新启动一个新的(但是连续的)单引号的字符串。 所以,这不会引入任何空格或任何东西。

另一方面,最好避免这样做。 重新解释字符串时容易引起问题。 在处理远程shell时,情况更是如此。

手动进行深层嵌套时,通常使用双引号,或者自动使用双引号和单引号。

如果你手动做,可能只是简单地用反斜杠来隐藏嵌套的双引号,撇号和美元符号,避免做深度超过一个或两个级别。

有时,而不是手动嵌套报价,我会使用: http : //stromberg.dnsalias.org/~strombrg/bashquote.HTML它可以自动,按指数形式用双引号包装一个字符串。 它使用双引号和单引号的组合。

例如。 从最小的代码测试:

dstromberg@zareason-limbo6000a ~/src/home-svn/bashquote/trunk $ ./bashquote.py unquoted: 'This is a test' repetition 0: ''"'"'This is a test'"'"'' repetition 1: ''"'"''"'"'"'"'"'"'"'"'This is a test'"'"'"'"'"'"'"'"''"'"'' repetition 2: ''"'"''"'"'"'"'"'"'"'"''"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'This is a test'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"''"'"'"'"'"'"'"'"''"'"'' Final version: ''"'"''"'"'"'"'"'"'"'"''"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'This is a test'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"''"'"'"'"'"'"'"'"''"'"'' ''"'"''"'"'"'"'"'"'"'"''"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'This is a test'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"'"''"'"'"'"'"'"'"'"''"'"''

这应该是跳过3 ssh和4日执行。

对于AWK脚本,我设置一个变量为八进制等值。

但在像你这样的情况下,我会使用双引号,并确保将所有可能由shell解释的内容(如美元符号)都转义出来。

我不会使用rsh因为它是不安全的。

总结

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

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

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

原文地址: https://outofmemory.cn/langs/1291503.html

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

发表评论

登录后才能评论

评论列表(0条)

保存