From https://unix.stackexchange.com/a/94200/674
If there are no positional parameters ($# is 0), then "$@" expands to nothing (not an empty string, but a list with 0 elements)
So how differently do an empty string and a list with 0 elements behave?
Does "a list with 0 elements" mean "an array with 0 elements"? I don't see bash has the concept of list
.
Can "nothing" mean something which is not necessarily a "list" or array?