Verwenden von Alias, um Backticks in bash widerzuspiegeln


4

Entschuldigung, wenn dies anderswo beantwortet wird, konnte ich für mein Leben keine Lösung für meinen speziellen Fall finden, was etwas seltsam ist, gebe ich zu. (Hinweis: Alle "Verwenden" -Wörter in diesem Beitrag erscheinen aus irgendeinem Grund blau, sollten aber nicht sein und ich weiß nicht, wie ich das verhindern kann.)

Ich benutze Bash in MacOS. Ich habe ein paar Aliase in meiner .bashrc-Datei, die nur im Terminalfenster gedruckt werden, um mich an Befehle zu erinnern, oder um jemandem schnell ein Beispiel zu zeigen (im folgenden Code erstelle ich den Alias ​​in der Befehlszeile, in Wirklichkeit aber immer setzen Sie Aliase in .bashrc):

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

Wenn ich Echo nur in der Befehlszeile verwende, kann ich vor einem Backtick mit einem Backslash einen Backtick in das Fenster drucken:

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

Wenn Sie jedoch dasselbe in einem Alias ​​tun, wird tatsächlich "which python" ausgeführt, anstatt es im Fenster zu drucken:

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

TL; DR, was ich möchte, ist ein Alias ​​in .bashrc, der ein Echo verwendet, um einen Backtick auszudrucken, sodass ich am Ende genau das in bash tun kann:

558 ~ howtobacktick
Using `which python` etc

Ich habe eine Reihe von Variationen innerhalb des Alias ​​in .bashrc ausprobiert, und keine davon hat funktioniert. Wie bekomme ich das Verhalten, nach dem ich suche? Und gibt es eine Möglichkeit, dies speziell mit Echo zu tun?

Antworten:


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

BEARBEITEN :

Es ist weil Backticks ( ` ) und andere Sonderzeichen werden nicht speziell in Anführungszeichen Vergleichen Sie:

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

Wow, ich habe alles ausprobiert, außer ein einziges Zitat zu verwenden, das war das Einzige, was ich brauchte. Es war so einfach. Wissen Sie, warum die Verwendung eines einfachen Zitats funktioniert, und doppelte Anführungszeichen nicht?
Galen
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.