我有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