2017-03-06 39 views
0

我有我的shell腳本,myscript.sh下面-bash:[:=:一元運算符預期。當沒有給出參數

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

如果我. myscript.sh -r運行,它與消息I am here效果很好。

但如果我只是. myscript.sh,它的投訴

-bash: [: =: unary operator expected

缺少了什麼在我的腳本運行?

回答

2

您需要周圍添加引號$ 1

if [ "$1" = "-r" ]; then 
    echo "I am here" 
fi 

當$ 1爲空時,您會得到if [=「-r」]這是一個語法錯誤。

4

你已經錯過了報價:

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

早起的鳥抓住聲望...... :) – Gewure

相關問題