Использование псевдонима для отображения обратных ударов в bash

678
Galen

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

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

4

1 ответ на вопрос

3
Arkadiusz Drabczyk
$ 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 
Вау, я попробовал все, кроме использования одной кавычки, которая мне была нужна. Это было так просто. Знаете ли вы, почему использование одинарных кавычек работает, а двойные - нет? Galen 7 лет назад 0

Похожие вопросы