#!/usr/bin/env false # FAKE_COMPAT cd ~/sh && unset IFS || exit [ -z "${0##/*}" ] && sh=zsh || sh="${0#-}" # zsh replaces $0, so hardcode it case "$sh" in (ash) SH=ASH c=ash;; (bash) SH=BASH c=bash;; (dash) SH=DASH c=dash;; (hush) SH=HUSH c=hush;; (ksh) SH=KSH c=ksh;; (loksh) SH=OKSH c=oksh;; # similar enough to oksh to use the same compatibility flag (mksh) SH=MKSH c=mksh;; (oksh) SH=OKSH c=oksh;; (osh) SH=OSH c=osh;; (posh) SH=POSH c=posh;; (yash) SH=YASH c=yash;; (zsh) SH=ZSH c=zsh; set -o SH_WORD_SPLIT;; (*) printf >&2 %s\\n "unknown shell (\$0): $0" exit 1 esac printf %s\\n '#!/usr/bin/env false' '[ -n "$preload" ] || exit 1' '' for f in "${HOME:?}/sh"/*; do [ -n "${f##*.*}" ] && [ -f "$f" ] || continue i=10 sh= while IFS= read -r line; do check=0 for word in $line; do case "$word" in (YES_$SH) sh=1;; (NO_$SH) sh=0;; (compat:) check=1;; esac [ "$check" != 1 ] || case "$word" in (+$c) sh=1;; (-$c) sh=0;; esac done [ "$((i-=1))" != 0 ] || break # act like head -n10 done < "$f" [ "$sh" != 1 ] || set -- "$@" "$f" done [ $# = 0 ] || cat "$@"