The following commands output 1,2,1,1
cmd0='a=("${a[@]}" 'a'); echo "${#a}"'
cmd1='a+=('a'); echo "${#a}"'
bash -c "$cmd0"; zsh -c "$cmd0"
bash -c "$cmd1"; zsh -c "$cmd1"
The following outputs 0,1,0,0
cmd2='f() { echo "$#"; }; f "${a[@]}"'
cmd3="a=(); $cmd2"
bash -c "$cmd2"; zsh -c "$cmd2"
bash -c "$cmd3"; zsh -c "$cmd3"
Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
}
parse_args() {
+ o_qemu_extra=()
while [ "$#" -gt 0 ]; do
case "$1" in
--kernel) o_kernel="$2"; shift 2 ;;
elif [ -z "$o_subtarget" ]; then
o_subtarget="$1"
else
- o_qemu_extra=("${o_qemu_extra[@]}" "$1")
+ o_qemu_extra+=("$1")
fi
shift
;;
if [ ! -f "$rootfs" -a -s "$rootfs.gz" ]; then
gunzip "$rootfs.gz"
fi
- o_qemu_extra=( \
+ o_qemu_extra+=( \
"-drive" "file=$rootfs,format=raw,if=virtio" \
"-append" "root=/dev/vda rootwait" \
- "${o_qemu_extra[@]}" \
- )
+ )
}
"$qemu_exe" -machine virt -cpu "$cpu" -nographic \