不能嵌套单引号,但可以结束单引号字符串,包含转义的单引号,然后重新输入引号。试试这个:
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
如果您的脚本是纯sh
兼容的并且远程端没有 bash,则使用该脚本。)
作为另一种选择,如果您的代码段很短,您可以在此处使用文档:
rsh fooDNS sh <<'EOF'
...
BROADCAST_IP_ADDRESS=$(/usr/sbin/ifconfig $IF_NAME | grep broadcast | awk '{print $6}')
...
EOF