2012-04-12 3 views
6

Ich versuche, ein Argument in der Bash unter OSX mit dem folgenden Code ...Bash: Wie Argumente mit if-Anweisung zu vergleichen?

#!/bin/bash 

if ["$1" == "1"] 
then 
     echo $1 
else 
     echo "no" 
fi 

Aber ich halte vergleichen den folgenden Fehler bekommen

$bash script.sh 1 

script.sh: line 3: [1: command not found 
no 

Wie verhindere ich es von dem Versuch zu werte "1" aus?

Antwort

18

[ ist ein Testbefehl, so benötigen Sie einen Raum zwischen [ und "$1" sowie einen Raum zwischen "1" und das Schließen ]

bearbeiten

Nur um zu klären, wird der Raum benötigt Weil [ eine andere Syntax des Bash-Befehls test ist, ist das folgende eine weitere Möglichkeit, das Skript zu schreiben:

Welche weiter vereinfacht werden kann

#!/bin/bash 
[ "$1" == "1" ] && echo "$1" || echo "no" 
+0

konnte es nicht schnell genug geben :) – KevinDTimm

Verwandte Themen