set aa bb cc -- dd ; f=$'\1' IFS=$f recho "$f$*$f" recho "$f--$f" [[ $f$*$f == *$f--$f* ]] && echo ok 1 [[ $f$*$f == "$f--$f" ]] || echo ok 2 [[ ${f}${*}${f} == *$f--$f* ]] && echo ok 3 [[ $f$*$f == $f$*$f ]] && echo ok 4 [[ ${f}${*}${f} == $f$*$f ]] && echo ok 5 [[ $f$*$f == *--* ]] && echo ok 6 [[ $* == $* ]] && echo ok 7 [[ $* == ${*} ]] && echo ok 8 [[ $f == $f ]] && echo ok 9 [[ $f == ${f} ]] && echo ok 10 # now with f an array and $f -> ${f[0]} set aa bb cc -- dd ; f=( $'\1' ) [[ $f$*$f == *$f--$f* ]] && echo ok 11 [[ ${f}${*}${f} == *$f--$f* ]] && echo ok 12 [[ $f$*$f == $f$*$f ]] && echo ok 13 [[ ${f}${*}${f} == $f$*$f ]] && echo ok 14 [[ $f$*$f == *--* ]] && echo ok 15 [[ $* == $* ]] && echo ok 16 [[ $* == ${*} ]] && echo ok 17 [[ $f == $f ]] && echo ok 18 [[ $f == ${f} ]] && echo ok 19 # now use an array instead of $* A=( aa bb cc -- dd ); f=$'\1' IFS=$f [[ $f${A[*]}$f == $f${A[*]}$f ]] && echo ok 20 [[ $f${A[*]}$f == *--* ]] && echo ok 21 [[ ${f}${A[*]}${f} == *$f--$f* ]] && echo ok 22 [[ ${f}${A[*]}${f} == $f${A[*]}$f ]] && echo ok 23 [[ ${A[*]} == ${A[*]} ]] && echo ok 24