It's a "null list" not a "null string". You can use a null string: % s='' % ls $s^/x but not a null list (like using null in many lisp list operations, or the difference between strcat of nil and strcat of ""): % s=() % ls $s^/x rc (-/bin/rc): null list in concatenation A completely unset variable is a null list. Also, `{...} returns a list (of words) not a string, hence the diagnostic in that case.