1*13de33a5SJulio Merino 2*13de33a5SJulio Merino# The construct ${#?} is ambiguous in POSIX.1-2008: it could be the length 3*13de33a5SJulio Merino# of $? or it could be $# giving an error in the (impossible) case that it 4*13de33a5SJulio Merino# is not set. 5*13de33a5SJulio Merino# We use the former interpretation; it seems more useful. 6*13de33a5SJulio Merino 7*13de33a5SJulio Merino: 8*13de33a5SJulio Merino[ "${#?}" = 1 ] || echo '${#?} wrong' 9*13de33a5SJulio Merino(exit 42) 10*13de33a5SJulio Merino[ "${#?}" = 2 ] || echo '${#?} wrong' 11