• [^] # Re: Sans UUOC

    Posté par . En réponse au journal le shell trick tout pourri du vendredi : .lsignore. Évalué à 7.

    alias ls="ls $(if [ -e .lsignore ]; then while read name ; do printf '--hide %s ' "$file" ; done < .lsignore ; fi)"

    Ta version est clairement meilleure, je me permets de préciser qu'il faut :

    1. remplacer les doubles quote extérieures par des simples (sinon l'interprétation est immédiate et il n'y a plus rien de dynamique),
    2. et qu'il faut ajouter '--' juste derrière le printf pour qu'il n'interprète pas le --hide comme une option.

    sans cela ça ne marche pas (du moins sous bash). On a donc :

    alias ls='ls $(if [ -e .lsignore ]; then while read file ; do printf -- "--hide %s " "$file" ; done < .lsignore ; fi)'

    Pas de cat inutile, pas d'appel à un autre processus, avec ta version. Une dernière simplification anecdotique :

    alias ls='ls $([ -e .lsignore ] && while read file ; do printf -- "--hide %s " "$file" ; done < .lsignore)'