這個問題在這里已經有了答案: 我剛剛分配了一個變數,但 echo $variable 顯示了其他內容 (7 個答案) 26 天前關閉。
我有一個非常簡單的代碼,如下所示。
myVal=""
for ((i=1 ;i<=5 ;i ))
do
myVal =" * "
echo $myVal
done
問題是:
- 我無法
=在這個 shell 腳本代碼中使用。 - 當我
*在變數中分配時,它會列印我作業目錄中的所有檔案。
輸出:
*
* *
* * *
* * * *
* * * * *
uj5u.com熱心網友回復:
您的問題與 無關 =,它作業正常;您的myValvar 有一系列星號,完全符合預期。但是當您使用echo它時,這些星號會擴展到檔案串列中。為了防止這種情況,您需要參考擴展:
echo "$myVal"
您應該始終在 shell 中參考擴展名,除非您有非常好的具體理由不這樣做。基本上,每當您看到$前面沒有雙引號的 a 時,您都應該停下來思考并確保您知道該代碼中發生了什么。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/517856.html
標籤:重击壳Unix
上一篇:terraform組態檔中的Cloudinit檔案不起作用
下一篇:為什么多個讀取命令給我錯誤
