[openwrt/openwrt] scripts/qemustart: more portable array operation

LEDE Commits lede-commits at lists.infradead.org
Wed Jan 31 01:01:41 PST 2018


yousong pushed a commit to openwrt/openwrt.git, branch master:
https://git.lede-project.org/aa66aa0c9a77c115de0efcaf6ee59650b969b90d

commit aa66aa0c9a77c115de0efcaf6ee59650b969b90d
Author: Yousong Zhou <yszhou4tech at gmail.com>
AuthorDate: Thu May 11 14:29:52 2017 +0800

    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 <yszhou4tech at gmail.com>
---
 scripts/qemustart | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/scripts/qemustart b/scripts/qemustart
index 6c2254e..5af93b9 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 \



More information about the lede-commits mailing list