Denys Vlasenko | e34dbc4 | 2017-07-24 02:49:56 +0200 | [diff] [blame] | 1 | if test $# != 0; then |
| 2 | exec "$THIS_SH" "$0" |
| 3 | fi |
| 4 | |
| 5 | # No params! |
| 6 | for a in "$*"; do echo Should be printed; done |
| 7 | for a in "$@"; do echo Should not be printed; done |
| 8 | # Yes, believe it or not, bash is mesmerized by "$@" and stops |
| 9 | # treating "" as "this word cannot be expanded to nothing, |
| 10 | # but must be at least null string". Now it can be expanded to nothing. |
| 11 | for a in "$@"""; do echo Would not be printed by bash; done |
| 12 | for a in """$@"; do echo Would not be printed by bash; done |
| 13 | for a in """$@"''"$@"''; do echo Would not be printed by bash; done |
| 14 | for a in ""; do echo Should be printed; done |
| 15 | |
| 16 | # Bug 207: "$@" expands to nothing, and we erroneously glob "%s\n" twice: |
| 17 | printf 'Empty:%s\n' "$@" |
| 18 | printf "Empty:%s\n" "$@" |
| 19 | printf "Empty:%s\\n" "$@" |