Ich habe 2 Bash-Skripte. Einer ruft einen anderen an.Unterschied zwischen Bash-Variable
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
fand ich, wenn ich $ arg1 und $ arg zu drucken, zeigen sie den gleichen Wert "+ hcpu_extra = 111 bbb" auf dem Bildschirm. Aber wenn ich sie an die callee.sh als Argument übergeben. Ich habe unterschiedliche Ergebnisse. Also meine Frage ist, was ist der Unterschied zwischen $ arg und $ arg1 aus Sicht des Bash-Interpreters? .
Und was sind die verschiedenen Ergebnisse, die Sie in callee.sh bekommen? Ich nehme an, du meinst, du echo $ 2 'in 'callee.sh' – Arash
$ arg beginnt mit einem Leerzeichen, nicht? – Robin479