我有执行这个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语句中使用单引号?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)