4

Извиняюсь, если на этот вопрос ответили в другом месте, я не смог бы найти решение для моего конкретного случая, что немного странно, я признаю. (Примечание: все слова «Использование» в этом посте почему-то кажутся голубыми, но их не должно быть, и я не знаю, как это предотвратить).

Я использую Bash в MacOS. У меня есть несколько псевдонимов в моем .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

Но, делая то же самое в псевдониме, на самом деле выполняется `which 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, и ни один из них не работал. Как я могу получить поведение, которое я ищу? И есть ли способ сделать это специально с эхо?

1 ответ1

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

РЕДАКТИРОВАТЬ:

Это связано с тем, что backticks (`) и другие специальные символы не обрабатываются специально в одинарных кавычках. Для сравнения:

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .