比方说,你有一个alias像bash 一样:
alias rxvt='urxvt'
Run Code Online (Sandbox Code Playgroud)
哪个工作正常.
然而:
alias rxvt='urxvt -fg '#111111' -bg '#111111''
Run Code Online (Sandbox Code Playgroud)
不会起作用,也不会:
alias rxvt='urxvt -fg \'#111111\' -bg \'#111111\''
Run Code Online (Sandbox Code Playgroud)
那么,一旦转义了引号,你最终如何在字符串中匹配开头和结尾的引号?
alias rxvt='urxvt -fg'\''#111111'\'' -bg '\''#111111'\''
Run Code Online (Sandbox Code Playgroud)
看起来很笨拙虽然如果你允许这样连接它们就会代表相同的字符串.
我正在构建一小组脚本来远程启动,停止和检查进程的状态.在stop这些脚本应该寻找一个过程,并杀死它.因此,我做:
ssh deploy@hera 'kill -9 `ps -ef | grep MapReduceNode | grep -v "grep" | awk -F " " '{print $2}' | head -n 1`'
Run Code Online (Sandbox Code Playgroud)
这里的问题是awk标记化步骤需要单引号,并且这些单引号与用于通过ssh执行远程命令的单引号冲突.这些单引号如何被转义?