我正在创建一个bash命令:
const k = cp.spawn('bash');
k.stdin.end(`
alias ssh='ssh "${SSH_ARGS[@]}"'
`);
但是,当然,我必须逃避它。我认为逃脱它的最佳方法是使用:
`alias ssh='ssh "\${SSH_ARGS[@]}"'`
谁能解释为什么行得通?
答案 0 :(得分:2)
仅转义$
的原因与普通花括号不会引发错误的原因相同-模板字符串中的表达式由开头的${
和}
标识结束。如果美元符号已转义,则不会将其解释为${
关键字的一部分,并且花括号将被解释为普通字符。
答案 1 :(得分:1)
因为反斜杠\
是照常的转义字符,在模板字符串中也是如此。它在${
序列的前面加上前缀,否则该序列将被解释为定界符。