使用别名在 bash 中回显反引号

Gal*_*len 5 terminal bash command-line bash-alias

抱歉,如果在其他地方回答了这个问题,我一生都无法找到解决我的特殊情况的方法,我承认这有点奇怪。(注意:由于某种原因,这篇文章中的所有“使用”字样都显示为蓝色,但它们不应该是蓝色的,我不知道如何防止它)。

我在 MacOS 中使用 bash。我的 .bashrc 中有一些别名,它们只是向终端窗口打印一些东西来帮助我记住命令,或者快速向某人展示一个示例(在下面的代码中,我在命令行上创建别名,但实际上我总是将别名放在 .bashrc 中):

556 ~ alias howtotensorboard="echo tensorboard --logdir=logs/ --port=6001"
557 ~ howtotensorboard
tensorboard --logdir=logs/ --port=6001
Run Code Online (Sandbox Code Playgroud)

如果我只在命令行上使用 echo,在反引号前面加上反斜杠允许我将反引号打印到窗口:

559 ~ echo Using \`which python\` etc
Using `which python` etc
Run Code Online (Sandbox Code Playgroud)

但是在别名中做同样的事情实际上是执行 `which python` 而不是将它打印到窗口:

560 ~ alias howtobacktick="echo Using \`which python\` etc"
561 ~ howtobacktick
Using /usr/bin/python etc
Run Code Online (Sandbox Code Playgroud)

TL; DR,我想要的是在 .bashrc 中放置一个别名,该别名使用 echo 打印出一个反引号,以便最后我可以在 bash 中做到这一点:

558 ~ howtobacktick
Using `which python` etc
Run Code Online (Sandbox Code Playgroud)

我在 .bashrc 中的别名中尝试了许多变体,但没有一个起作用。我怎样才能得到我正在寻找的行为?而且,有没有办法专门用回声来做到这一点?

Ark*_*zyk 5

$ alias howtobacktick='echo Using \`which python\` etc'
$ howtobacktick
Using `which python` etc
Run Code Online (Sandbox Code Playgroud)

编辑

这是因为反引号 ( `) 和其他特殊字符在单引号内没有特别处理。相比:

$ echo 'Using `which python` etc'
Using `which python` etc
$ echo "Using `which python` etc"
Using /usr/bin/python etc
Run Code Online (Sandbox Code Playgroud)