私は2つのbashスクリプトを持っています。 1つは別のものを呼び出す。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と$ argのを印刷する場合、彼らは同じ値を示し、 "+ hcpu_extra = 111 BBB" を発見しました。しかし、私は引数としてそれぞれcallee.shに渡します。私は別の結果を得た。 私の質問は、bashインタプリタの観点から$ argと$ arg1の違いは何ですか? 。
callee.shで得られる結果とはどのような違いがありますか? 'callee.sh'で' echo $ 2'を実行することを意味すると思います – Arash
$ argはスペースで始まりますか? – Robin479