我有2個bash腳本。一個正在呼喚另一個。bash變量之間的區別
Caller.sh
arg1="+hcpu_extra=111 bbb"
str="-y +hcpu_extra=111 bbb"
local cmd_re="(-y)(.*)"
if [[ $str =~ $cmd_re ]]
then
opt=${BASH_REMATCH[1]}
arg=${BASH_REMATCH[2]}
echo "matched $opt"
echo "matched $arg"
fi
./callee.sh -y $arg
## ./callee.sh -y $arg1
我發現,如果我打印$ ARG1和$阿根廷,他們在屏幕上顯示相同的值 「+ hcpu_extra = 111 BBB」。但是當我將它們分別傳遞給callee.sh作爲參數時。我得到了不同的結果。 所以我的問題是,從bash解釋器的角度來看,$ arg和$ arg1有什麼區別? 。
你在callee.sh中獲得的不同結果是什麼?我假設你的意思是你在'callee.sh'中做'echo $ 2'' – Arash
$ arg以空格開頭,不是? – Robin479