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

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

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

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

556 ~ alias howtotensorboard="echo tensorboard --logdir=logs/ --port=6001"
557 ~ howtotensorboard
tensorboard --logdir=logs/ --port=6001

如果我仅在命令行上使用 echo,则在反引号前面加上反斜杠可以使我将反引号打印到窗口中:

559 ~ echo Using \`which python\` etc
Using `which python` etc

但是在别名中执行同样的事情实际上会执行“哪个python”而不是将其打印到窗口:

560 ~ alias howtobacktick="echo Using \`which python\` etc"
561 ~ howtobacktick
Using /usr/bin/python etc

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

558 ~ howtobacktick
Using `which python` etc

我在 .bashrc 中的别名中尝试了许多变体,但都没有奏效。我怎样才能获得我想要的行为?有没有办法专门用 echo 来做到这一点?

答案1

$ alias howtobacktick='echo Using \`which python\` etc'
$ howtobacktick
Using `which python` etc

编辑

这是因为反引号 ( `) 和其他特殊字符在单引号内不会被特殊处理。比较:

$ echo 'Using `which python` etc'
Using `which python` etc
$ echo "Using `which python` etc"
Using /usr/bin/python etc

相关内容