D1614.bash32-soh-and-del-in-arrays.sh (1224B)
1 #!/bin/bash 2 3 function test1 { 4 s=$'x\1y\177z' 5 a=($'x\1y' $'z\177w') 6 declare -p s a | cat -v 7 } 8 #test1 9 #(test1) 10 11 function test2 { 12 a=($'x\1y' $'z\177w') 13 b=("${a[@]}") 14 declare -p a b | cat -v 15 } 16 #test2 17 18 # "正解" を生成している時に "正解" が変質している可能性 19 function test3 { 20 local a; a=($'x\1y' $'z\177w') 21 printf '%s\0' "${a[@]}" | cat -v 22 } 23 #test3 24 25 #------------------------------------------------------------------------------ 26 # ble/util/declare-print-definitions に失敗する問題 27 28 function status { echo "${#a6[*]}:(""${a6[*]}"")"; } 29 function test4 { 30 a6=($'\x01' a$'\x01'b) 31 status a6 | cat -v 32 } 33 #test4 34 35 function status { ret="${#a6[*]}:(""${a6[*]}"")"; } 36 function test5 { 37 a6=($'\x01' a$'\x01'b) 38 status a6 39 echo "$ret" | cat -v 40 } 41 #test4 42 43 function test6 { 44 a6=($'\x01' a$'\x01'b) 45 echo "$a6" | cat -v 46 a6[0]=$'\x01' 47 echo "$a6" | cat -v 48 a6=$'\x01' 49 echo "$a6" | cat -v 50 } 51 #test4 52 53 function test7 { 54 local x=$'\x01' y=$'\x7F' a6 55 a6=("$x" "$y") 56 declare -p a6 | cat -v 57 } 58 test7 59 60 # 正しく実装する為には arr=() の形式は使ってはならないという事。 61 function test7 { 62 local -a a=() 63 a[0]=$'x\1y' 64 a[1]=$'z\177w' 65 declare -p a | cat -v 66 } 67 #test7