[英]Syntax error in conditional expression and near `then' in Ubuntu terminal
我只是在學習終端命令,我正在嘗試創建自己的命令,但是我遇到了以下問題
./myFile: line 10: syntax error in conditional expression
./myFile: line 11: syntax error near `then'
./myFile: line 11: ` then'
有我的代碼
#!/bin/bash
echo "please enter name of the folder"
read NAME1
if [[ $NAME1 ]]
then
echo "enter first number"
read NUM1
if [[ $NUM1 ]] && [[ $NUM1 -ge 0]]
then
echo "enter last number"
read NUM2
if [[ $NUM2 ]] && [[ $NUM2 -gt $NUM ]]
then
mkdir $NAME1{$NUM1..$NUM2}
else
echo"please enter last number to continue"
fi
else
echo "please enter first number to continue"
fi
else
echo "please enter name of the folder to continue"
fi
首先,表達式[[ $NAME1 ]]
無效,或者至少沒有按照您的想法執行。 我相信您正在嘗試確定用戶是否實際輸入了字符串。 為此,您應該測試非空字符串 ( [[ -n ${NAME1} ]]
) 或測試大於零的字符串長度 ( [[ ${#NAME1} -gt 0 ]]
)。 當您測試$NUM1
和$NUM2
時,同樣適用。
其次,在處理用戶輸入時,應注意避免測試空字符串。 這最好通過引用您的變量來實現。 例如: [[ "${NUM1}" -gt 0 ]]
。
第三,空間在測試中很重要。 總是在[[
和]]
之后留一個空格。
此外, $NUM
(第 15 行)未聲明,因此將評估為空字符串。 這應該在腳本中較早的地方設置。
此腳本還有許多其他方面可以改進(例如檢查數字輸入、檢查有效文件夾名稱等。但上述更改應該可以幫助您克服直接錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.