Zsh别名复杂字符串引号转义

sty*_*yts 4 zsh

我正在尝试alias gsl="..."为以下命令定义别名 ( ),但无法正确获取转义引号。

git stash list | awk -F: '{ print "\n\n\n\n"; print $0; print "\n\n"; system("git stash show -p " $1); }'

关于如何转义引号以正确定义别名的任何提示?

mpy*_*mpy 6

这应该有效:

 alias gsl="git stash list | awk -F: '{ print \"\\n\\n\\n\\n\"; print \$0; print \"\\n\\n\"; system(\"git stash show -p \" \$1); }' "
Run Code Online (Sandbox Code Playgroud)

规则:

  • 在双引号中转义双引号
  • 用双引号转义 $
  • 转义转义字符 \
  • 不要转义单引号——您不需要文字单引号,而只需将 awk 命令分组到一个参数中