2016-06-14 15 views
0

Ich bin neu in Codierung und versuchen, mich selbst zu unterrichten. Ich habe mich gefragt, warum ich "notcoolbeans" bekomme anstatt das Verzeichnis zu erstellen?Wie mkdir in if-Anweisung

!/bin/sh 
if [ $mkdir /Users/Matt/Desktop/Yaya = 1 ]; 
then 
    echo "theres beans" 
else 
    echo "notcoolbeans" 
fi 

Das Verzeichnis existiert noch nicht. Ich versuche es zu schaffen.

Antwort

1

Eine korrekte Implementierung würde wie folgt aussehen:

#!/bin/sh 
if mkdir /Users/Matt/Desktop/Yaya; then 
    echo "theres beans" 
else 
    echo "notcoolbeans" 
fi 

Artikel der Anmerkung:

  • Ein gültiger shebang beginnt mit #!, nicht !. (BTW, betrachten Sie #!/bin/bash oder statt #!/bin/sh, wenn Sie eine umfangreichere Skriptsprache wünschen).
  • [ ]ist nicht Bestandteil der if Erklärung. Es ist ein Befehl, der Tests ausführt und den Exit-Status für die Ausgabe festlegt. Wenn Sie jedoch den Exit-Status eines anderen Befehls testen möchten, können Sie ihn nicht verwenden.
  • $mkdir versucht, eine Variable namens mkdir zu erweitern. Es kann nicht erwartet werden, dass eine solche Variable in einer neuen Shell existiert. Wenn es leer ist, ist das Ergebnis [ /Users/Matt/Desktop/Yaya = 1 ]. "/Users/Matt/Desktop/Yaya" und "1" sind nicht identische Zeichenfolgen, daher schlägt dies immer fehl.