Wikipedia ( Link ) sagt mir also, dass der Befehl pwd
für "Arbeitsverzeichnis drucken" steht, und das macht Sinn.
Für die Umgebungsvariable muss das "P" jedoch ein Akronym für etwas anderes als print sein.
Ich höre Leute über "aktuelles Arbeitsverzeichnis" sprechen, was besser klingt und intuitiver ist, aber die Umgebungsvariable scheint immer noch $ PWD und nicht $ CWD zu heißen. Niemand sagt jemals "Haben Sie die Variable print working directory überprüft?".
Ich spiele gerade mit dem Webanwendungsserver uWSGI herum und er sagt mir beim Ausführen (auf der Seite mit den uWSGI-Statistiken):
"cwd":"/home/velle/greendrinks",
so mögen sie offensichtlich das (intuitivere Akronym) cwd
vorbei pwd
.
Ich denke, ich versuche herauszufinden, ob ich etwas missverstanden habe oder ob es nur darum geht, der Umgebungsvariablen einen nicht intuitiven Namen zu geben.
quelle
$PWD
ist gleichbedeutend mit`pwd`
, und das war Rechtfertigung genug.Antworten:
Das hängt davon ab, was Sie tun. Zuallererst
$PWD
ist es eine Umgebungsvariable undpwd
eine eingebaute Shell oder eine tatsächliche Binärdatei:Jetzt gibt die eingebaute Bash einfach den aktuellen Wert von aus, es
$PWD
sei denn, Sie verwenden das-P
Flag. Wie erklärt inhelp pwd
:Die
pwd
Binärdatei hingegengetcwd(3)
ruft das aktuelle Verzeichnis über den Systemaufruf ab, der denselben Wert wie zurückgibtreadlink -f /proc/self/cwd
. Versuchen Sie zur Veranschaulichung, in ein Verzeichnis zu wechseln, das einen Link zu einem anderen enthält:So, zum Schluss, auf GNU - Systemen (wie Ubuntu),
pwd
undecho $PWD
sind gleichwertig , wenn Sie die Verwendung-P
Option, aber/bin/pwd
ist anders und verhält sich wiepwd -P
.Quelle https://askubuntu.com/a/476633/291937
quelle
PWD
es, eine Umgebungsvariable zu sein. Tatsächlich ist dies der Standardfall bei den meisten, wenn nicht allen Shells, und es ist sinnvoll, diese für untergeordnete Prozesse bereitzustellen.$PWD
undpwd
(die bereits in U & L behandelt wurden, bevor ich glaube), sondern auf die Gründe, die zur Benennung der Variablen "PWD
" geführt haben.ksh88
welches Dokument eingeführt :PWD The present working directory set by the cd command.
Sie sollten dies Ihrer Antwort hinzufügen.$ PWD ist die P athname des aktuellen W RBEITEN D irectory
Wenn symbolische Links vorhanden sind, kann dies zu unterschiedlichen Ergebnissen führen, vom Lesen von $ PWD bis zur Ausführung des Befehls pwd .
quelle
$PWD
und erhaltenpwd
?