Dies ist auf OSX El Capitan, sondern passiert auch in meinem Ubuntu-Aliase.verschiedene Auswertung von pwd in ~ /. Bash_profile Alias je nach Art des Zitats
Ich stieß auf ein Problem mit einem Alias, den ich erstellt habe, um das Arbeitsverzeichnis an einen Andock-Container zu übergeben.
dies nicht funktionieren (immer passiert ~/Users/username für $ (PWD), egal in welchem Verzeichnis Ich bin in):
alias phpqa="docker run --rm -u $UID -v $(pwd):/app eko3alpha/docker-phpqa"
Werke:
alias phpqa='docker run --rm -u $UID -v $(pwd):/app eko3alpha/docker-phpqa'
Allerdings begann ich immer unerwartete Fehler in meinem Skript, wenn der falsche Pfad übergeben wurde. Also habe ich ein Experiment gemacht. Ich habe diese beiden Aliase in mein ~/.bash_profile eingefügt.
alias getpath="echo $(pwd)"
alias getpath2='echo $(pwd)'
ich abgemeldet und dann angemeldet zurück
Verzeichnis wechseln.
$ cd /Users/username/correct/path/to/project
beiden Aliase ausführen:
$ getpath
/Users/username
$ getpath2
/Users/username/correct/path/to/project
die Alias mit den doppelten Anführungszeichen immer wieder die Benutzer home-Verzeichnis, während der Alias mit einfachen Anführungszeichen das aktuelle Verzeichnis zurückgibt. Kann jemand erklären, warum das so ist?
Suche ist ein nützliches Wissen. http://stackoverflow.com/questions/6697753/difference-between-single-and-double-quotes-in-bash –
Wenn einzelne Anführungszeichen literal waren, warum bekomme ich dann nicht "echo $ (pwd)", wenn ich ausführen " getpath2 ", die in einfache Anführungszeichen eingeschlossen ist. Stattdessen erhalte ich "/ Benutzer/Benutzername/richtig/path/to/Projekt" – Eko3alpha
Es ist einfach, versuchen Sie sich: echo "echo $ (PWD)" uuuuund echo 'echo $ (pwd)' den Unterschied fühlen? –