在 JS 模板字符串中转义 ${} 的正确方法
Proper way to escape ${} in a JS template string
我正在创建一个 bash 命令:
const k = cp.spawn('bash');
k.stdin.end(`
alias ssh='ssh "${SSH_ARGS[@]}"'
`);
当然,我必须逃避它。我认为逃避它的最好方法是使用:
`alias ssh='ssh "${SSH_ARGS[@]}"'`
任何人都可以解释为什么这样做吗?
仅转义 $
的工作原理与普通花括号不会引发错误的原因相同 — 模板字符串中的表达式在开头由 ${
和 [=12= 标识] 在末尾。如果美元符号被转义,它不会被解释为 ${
关键字的一部分,并且花括号被解释为普通字符。
因为反斜杠 \
通常是转义符,在模板字符串中也是如此。它作为 ${
序列的前缀,否则将被解释为定界符。
我正在创建一个 bash 命令:
const k = cp.spawn('bash');
k.stdin.end(`
alias ssh='ssh "${SSH_ARGS[@]}"'
`);
当然,我必须逃避它。我认为逃避它的最好方法是使用:
`alias ssh='ssh "${SSH_ARGS[@]}"'`
任何人都可以解释为什么这样做吗?
仅转义 $
的工作原理与普通花括号不会引发错误的原因相同 — 模板字符串中的表达式在开头由 ${
和 [=12= 标识] 在末尾。如果美元符号被转义,它不会被解释为 ${
关键字的一部分,并且花括号被解释为普通字符。
因为反斜杠 \
通常是转义符,在模板字符串中也是如此。它作为 ${
序列的前缀,否则将被解释为定界符。