今天把一支寫好的script放到Ubuntu跑,原本在板子上的Linux上跑是沒有問題的,但在Ubuntu上Run出現了錯誤訊息,簡單的程式如下所示:
############## test.sh ################
#!/bin/sh
NAME="danny"
NUM=56
if [ $NAME == "david" ]; then
echo "This is david"
else
echo "This is danny"
fi
if [ $NUM -gt 48 ]; then
echo "num great then 48"
fi
####################################
執行程式後的錯誤訊息:
./test.sh: 6: [: danny: unexpected operator
找了一下原因,原來是因為 sh的語法並沒有 "==" 這種語法,而是必須使用單一個"="
而"=="這語法,是bash在使用的
因此解決方法有兩個:
1. 把程式第一行的 #!/bin/sh 改成 #!/bin/bash
2. 把語法 "==" 改為 "="
save my time, thanks~!
回覆刪除Thanks for your response~
刪除Thanks for your share !
回覆刪除