首页 > 解决方案 > 在 JS 模板字符串中转义 ${} 的正确方法

问题描述

我正在创建一个 bash 命令:

const k = cp.spawn('bash');

k.stdin.end(`
  alias ssh='ssh "${SSH_ARGS[@]}"'
`);

但当然,我必须逃避它。我认为逃避它的最好方法是使用:

 `alias ssh='ssh "\${SSH_ARGS[@]}"'`

谁能解释为什么会这样?

标签: javascriptnode.jsbashshelltemplate-strings

解决方案


$出于与普通花括号不会引发错误相同的原因,仅对作品进行转义——模板字符串中的表达式在${开头和}结尾都由 标识。如果美元符号被转义,它不会被解释为${关键字的一部分,而花括号被解释为普通字符。


推荐阅读