115 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			115 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| # test cases for array quoting and escaping fixed post bash-3.2-release
 | |
| 
 | |
| oIFS="$IFS"
 | |
| 
 | |
| a=(a b c)
 | |
| echo ${a[@]}
 | |
| 
 | |
| a2=("${a[@]/#/"-iname '"}")
 | |
| recho "${a2[@]}"
 | |
| 
 | |
| echo "${dbg-"'hey'"}"
 | |
| echo "${dbg-"hey"}"
 | |
| echo "${dbg-'"'hey}"
 | |
| echo "${dbg-'"hey'}"
 | |
| 
 | |
| unset a a2
 | |
| 
 | |
| IFS=
 | |
| a2=(${a[@]/#/"-iname '"})
 | |
| recho "${a2[@]}"
 | |
| 
 | |
| IFS="$oIFS"
 | |
| unset a a2
 | |
| 
 | |
| a=('a b' 'c d' 'e f')
 | |
| 
 | |
| recho ${a[@]:1:2}
 | |
| recho "${a[@]:1:2}"
 | |
| 
 | |
| IFS=
 | |
| recho ${a[@]:1:2}
 | |
| recho "${a[@]:1:2}"
 | |
| 
 | |
| IFS="$oIFS"
 | |
| unset a a2
 | |
| 
 | |
| a=(abc def)
 | |
| 
 | |
| # Prevent word splitting
 | |
| #IFS= 
 | |
| 
 | |
| a2=("${a[@]/#/"-iname '"}") 
 | |
| recho "${a2[@]}"
 | |
| 
 | |
| eval a2=("${a[@]/#/\"-iname \'\"}") 
 | |
| recho "${a2[@]}"
 | |
| 
 | |
| eval a2=("${a[@]/#/"-iname '"}") 
 | |
| recho "${a2[@]}"
 | |
| 
 | |
| a2=("${a[@]/#/-iname \'}") 
 | |
| recho "${a2[@]}"
 | |
| 
 | |
| eval a2=("${a[@]/#/-iname \'}") 
 | |
| recho "${a2[@]}"
 | |
| 
 | |
| set -- abc def
 | |
| 
 | |
| a2=("${@/#/"-iname '"}") 
 | |
| recho "${a2[@]}"
 | |
| 
 | |
| eval a2=("${@/#/\"-iname \'\"}") 
 | |
| recho "${a2[@]}"
 | |
| 
 | |
| eval a2=("${@/#/"-iname '"}") 
 | |
| recho "${a2[@]}"
 | |
| 
 | |
| unset a a2
 | |
| 
 | |
| IFS=
 | |
| pat=('*.*')
 | |
| case $(ls ${pat[@]} 2>/dev/null) in
 | |
| '')	echo '*.* BAD' ;;
 | |
| *)	echo '*.* OK' ;;
 | |
| esac
 | |
| 
 | |
| IFS="$oIFS"
 | |
| unset a a2 pat
 | |
| 
 | |
| IFS=
 | |
| 
 | |
| s='abc'
 | |
| 
 | |
| set - ${s/b/1 2 3}
 | |
| echo $#
 | |
| echo "$1"
 | |
| 
 | |
| IFS="$oIFS"
 | |
| unset s
 | |
| 
 | |
| set -- ab cd ef
 | |
| foo="var with spaces"
 | |
| 
 | |
| IFS=
 | |
| recho $foo
 | |
| recho "$foo"
 | |
| 
 | |
| recho ${foo}"$@"
 | |
| recho ${foo}$@
 | |
| 
 | |
| array=(ab cd ef)
 | |
| recho ${foo}"${array[@]}"
 | |
| recho ${foo}${array[@]}
 | |
| 
 | |
| recho $(echo $foo)"$@"
 | |
| recho $(echo $foo)$@
 | |
| 
 | |
| a=('word1 with spaces' 'word2 with spaces')
 | |
| set - ${a[@]/word/element}
 | |
| echo $#
 | |
| recho "$@"
 | |
| recho $@
 | |
| 
 | |
| IFS="$oIFS"
 | |
| unset a a2 array foo
 | 
