name: "Quotes" cases: - name: "Single quotes" stdin: | var=xyz echo 'Quoted string' echo 'abc ${var} def' - name: "Double quotes" stdin: | echo "\"" - name: "Double quotes: escaping" stdin: | echo "1. \'" | hexdump -C echo "2. \x" | hexdump -C echo "\n" - name: "ANSI-C quotes" stdin: | single_quoted='\n' echo "Single quoted len: ${#single_quoted}" echo -n '\n' | hexdump -C ansi_c_quoted=$'\n' echo "ANSI-C quoted len: ${#ansi_c_quoted}" echo -n $'\n' | hexdump -C - name: "ANSI-C quotes with escape sequences" stdin: | echo -n "0. "$'\x' | hexdump -C echo -n "1. "$'\x65' | hexdump -C echo -n "2. "$'\xgg' | hexdump -C echo -n "3. "$'\x{65}' | hexdump -C echo -n "4. "$'\x{65' | hexdump -C echo -n "5. "$'\x{65R}' | hexdump -C echo -n "6. "$'\x{}R' | hexdump -C echo -n "7. "$'\x{ }' | hexdump -C echo -n "8. "$'\x{965}' | hexdump -C echo -n "9. "$'\'\"' | hexdump -C echo -n "10. "$'🐢' | hexdump -C echo -n "11. "$'\101' | hexdump -C echo -n "12. "$'\10' | hexdump -C echo -n "13. "$'\1' | hexdump -C echo -n "14. "$'\0' | hexdump -C echo -n "15. "$'\001' | hexdump -C echo -n "16. "$'abc \0 def' | hexdump -C echo -n "17. "$'\ca' | hexdump -C echo -n "18. "$'\cz' | hexdump -C echo -n "19. "$'\cA' | hexdump -C echo -n "20. "$'\cZ' | hexdump -C echo -n "21. "$'\c ' | hexdump -C echo -n "22. "$'\c!' | hexdump -C echo -n "23. "$'\c/' | hexdump -C echo -n "24. "$'\c0' | hexdump -C echo -n "25. "$'\c9' | hexdump -C echo -n "26. "$'\c:' | hexdump -C echo -n "27. "$'\c@' | hexdump -C echo -n "28. "$'\c[' | hexdump -C echo -n "29. "$'\c]' | hexdump -C echo -n "30. "$'\c`' | hexdump -C echo -n "31. "$'\c{' | hexdump -C echo -n "32. "$'\c?' | hexdump -C echo -n "33. "$'\c*' | hexdump -C echo -n "34. "$'\c^' | hexdump -C echo -n "35. "$'\c_' | hexdump -C echo -n "36. "$'\c' | hexdump -C echo -n "37. "$'\c\\' | hexdump -C echo -n "38. "$'\c\n' | hexdump -C echo -n "39. "$'\\' | hexdump -C - name: "ANSI-C quote syntax inside double quotes (literal, not processed)" stdin: | # When $'...' appears inside double quotes, it should be treated as literal text echo "$'\t'" echo "$'\'abcd\''" x="$'\n'" echo "len: ${#x}" echo "$x" - name: "gettext style quotes" stdin: | quoted=$"Hello, world" echo "Content: [${quoted}]"