Bram Moolenaar | 1aa5f1c | 2023-06-22 21:57:51 +0100 | [diff] [blame] | 1 | #!/bin/ksh |
| 2 | # Test variable modifiers |
| 3 | # Variable=value |
| 4 | Variable='value' |
| 5 | Variable="value" |
| 6 | VariableA="pat1xxpat2" |
| 7 | VariableB="pat2xxpat1" |
| 8 | echo ${#} |
| 9 | echo ${#VariableA} |
| 10 | echo ${VariableA#pat1} |
| 11 | echo ${VariableA##pat1} |
| 12 | echo ${VariableB%pat1} |
| 13 | echo ${VariableB%%pat1} |
| 14 | |
| 15 | # This gets marked as an error |
| 16 | Variable=${VariableB:+${VariableC:=eng}} # :+ seems to work for ksh as well as bash |
| 17 | Variable=${VariableB:-${VariableC:-eng}} # :- is ksh and bash |
| 18 | |
| 19 | # This is OK |
| 20 | Variable='${VariableB:+${VariableC:=eng}}' |
| 21 | Variable='${VariableB:-${VariableC:-eng}}' |
| 22 | Variable="${VariableB:+${VariableC:=eng}}" # :+ seems to work for ksh as well as bash |
| 23 | Variable="${VariableB:-${VariableC:-eng}}" # :- is ksh and bash |
| 24 | |
| 25 | # These are OK |
| 26 | : ${VariableB:-${VariableC:-eng}} |
| 27 | : "${VariableB:-${VariableC:-eng}}" |
| 28 | : '${VariableB:-${VariableC:-eng}}' |
| 29 | |
| 30 | # Another test |
| 31 | Variable=${VariableB:-${VariableC:-${VariableD:-${VariableE:=eng}}}} |
| 32 | : ${VariableB:=${VariableC:-${VariableD:-${VariableE:=eng}}}} |
| 33 | |