2017-03-06 8 views
0
gegeben

Ich habe meinen Shell-Skript, myscript.sh unter-bash: [: =: unärer Operator erwartet. wenn kein Parameter

#!/bin/sh 
if [ $1 = "-r" ]; then 
    echo "I am here" 
fi 

Wenn ich mit . myscript.sh -r laufen, es funktioniert gut mit der Meldung I am here.

Aber wenn ich nur mit . myscript.sh, es Beschwerden

-bash: [: =: unary operator expected

laufen Was in meinem Skript vermisst?

Antwort

2

Sie müssten Anführungszeichen um $ 1 hinzuzufügen.

Wenn $ 1 leer ist, erhalten Sie if [= "-r"], was ein Syntaxfehler ist.

4

Sie die Anführungszeichen verpasst haben:

if [ "$1" = "-r" ]; then 
+0

der frühe Vogel fängt den Ruf ... :) – Gewure

Verwandte Themen