2012-04-06 4 views
0

Blick auf den folgenden Code arbeiten:CD Befehl nicht wie soll

ECHO A2 
MKDIR -v /tmp/"My Batch Script File Assignment" 
ECHO 

ECHO A3 
CD "/tmp/My Batch Script File Assignment" 
PWD 
ECHO 

kann mir jemand sagen, warum der Befehl cd unter ECHO A3 funktioniert nicht. Der folgende PWD-Befehl meldet, dass sich das Arbeitsverzeichnis in/tmp ändert. Aber ich möchte zur "My Batch Script File Assignment" wechseln. Jeder weiß, warum es nicht so ist.

+0

Warum sind Ihre Befehle in Großbuchstaben? – Gabe

+0

das ist sie Weg mein Lehrer will sie – batsta13

Antwort

2

Ich nehme an, Sie bash auf OS X.

Im Gegensatz zu den anderen Befehlen in Ihrem „Skript“, das Verzeichnis wechseln (cd) Befehl in Kleinbuchstaben sein muss, weil es sein muss die Schale builtin verwenden CD, nicht/usr/bin/cd (wessen Zweck entgeht mir).

Die anderen Befehle "arbeiten" mit Großbuchstaben, weil Pfade und Dateinamen unter OS X die Groß-/Kleinschreibung ignorieren (standardmäßig sowieso), so dass die Shell die normalen Kleinbuchstaben auf Ihrem PATH findet und aufruft. Das funktioniert nicht für CD. Sie müssen CD verwenden.

So:

MKDIR Invokes/bin/mkdir (ok)
ECHO ruft/bin/echo (ok)
PWD Invokes/bin/pwd (ok)
CD ruft/usr/bin/CD (nicht ok, muss Shell eingebaute CD verwenden)

+0

+1 'CD' funktioniert nicht für mich, aber' CD' tut. Die anderen Befehle funktionieren in Großbuchstaben. [Hier ist, was 'CD' ist] (http://superuser.com/questions/69869/what-does-the-command-cd-do). – Wiseguy

+0

Der einzige wirkliche Zweck von '/ usr/bin/cd' ist, den Befehl ausführen zu können, um den Exit-Code zu erhalten, um herauszufinden, ob es möglich ist, in ein Verzeichnis zu wechseln. – Gabe