# # Ivar is an argument. # true [[ "$ivar" ]] && true [[ "$ivar" ]] || true [[ "$ivar" ]]; true [[ "$ivar" ]] & true [[ "$ivar" ]] | true [[ "$ivar" ]] [ "$ivar" ] && [ "$ivar" ] || [ "$ivar" ]; [ "$ivar" ] & [ "$ivar" ] | [ "$ivar" ] test "$ivar" && test "$ivar" || test "$ivar"; test "$ivar" & test "$ivar" | test "$ivar" if true [[ "$ivar" ]]; then true [[ "$ivar" ]]; elif true [[ "$ivar" ]]; then true [[ "$ivar" ]]; else true [[ "$ivar" ]]; fi if true [[ "$ivar" ]] then true [[ "$ivar" ]] elif true [[ "$ivar" ]] then true [[ "$ivar" ]] else true [[ "$ivar" ]] fi echo line continuation \ [[ "$ivar" ]] {[[ "$ivar" ]]} echo {} [[ "$ivar" ]] for i in [[ "$ivar" ]]; do :; done select i in [[ "$ivar" ]]; do break; done for i in do echo "$i"; done for i in "${pseudoarray[@]}" do echo "$i"; done for i in except "$this" do echo "$i"; done for i in "$or" this do echo "$i"; done for i in "$(seq 1 3)" do echo "$i"; done array=( [[ "$ivar" ]] ) array+=( [[ "$ivar" ]] ) # Filedescriptor redirection: The code does not make sense, # but tests that the succeeding expression is not a command, # which is all shellharden needs to know for now. : >&[[ "$ivar" ]] : 1>&[[ "$ivar" ]] : >& [[ "$ivar" ]] : 1>& [[ "$ivar" ]]