From: Yousong Zhou Date: Thu, 11 May 2017 06:29:52 +0000 (+0800) Subject: scripts/qemustart: more portable array operation X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=aa66aa0c9a77c115de0efcaf6ee59650b969b90d;p=librecmc%2Flibrecmc.git scripts/qemustart: more portable array operation 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 --- diff --git a/scripts/qemustart b/scripts/qemustart index 6c2254e3af..5af93b9aed 100755 --- a/scripts/qemustart +++ b/scripts/qemustart @@ -117,6 +117,7 @@ rand_mac() { } parse_args() { + o_qemu_extra=() while [ "$#" -gt 0 ]; do case "$1" in --kernel) o_kernel="$2"; shift 2 ;; @@ -131,7 +132,7 @@ parse_args() { elif [ -z "$o_subtarget" ]; then o_subtarget="$1" else - o_qemu_extra=("${o_qemu_extra[@]}" "$1") + o_qemu_extra+=("$1") fi shift ;; @@ -174,11 +175,10 @@ start_qemu_armvirt() { 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 \