Bash
當濫用整數變數(通過嘗試將字元串儲存到該變數中)時,Bash shell 是否有辦法拋出執行時錯誤?
Linux Mint 上的 Bash 4.3 shell:
我意識到 Bash shell 是無類型的,或者俱有非常弱的類型。但是是否可以呼叫 Bash shell(例如使用某些選項),以便當聲明的整數變數被濫用(例如,通過嘗試將字元串儲存到該整數變數中)時,shell 會拋出執行時錯誤?
範常式式碼:
declare -i age age=23 echo "$age" # result is 23 age="hello" echo "$age" # result is not the string hello - wish I could get an error message here!```
拋出錯誤的方法是:
set -u # or set -o nounset
然後:
$ set -u $ declare -i age $ age=hello bash: hello: unbound variable
但是,如果它不是未綁定的變數,它並不總是按您期望的方式“工作”:
$ hello=world $ age=hello bash: world: unbound variable $ hello=42 $ age=hello $ echo $age 42 $ hello="" $ age=hello $ echo $age 0
我開始認為
declare -i
. 它可以讓你在沒有算術語法的情況下進行算術運算,我認為這只會增加一層混亂。