• [^] # Re: Des exemples svp :)

    Posté par . En réponse au message Pas trouver fichier. Évalué à 1.

    C'est astucieux mais insuffisant ;)

    Ouais, je sais bien :) C'était juste une proposition pour lancer la discussion. Une autre grosse lacune est que ça ne fonctionne qu'avec les fichiers et pas avec les dossiers, mais ça fait parti des zones d'ombre de la demande.

    Pour être plus générique et avec la convention "tous les arguments qui sont commencent par --* sont des options", et on pourrait arriver sur un truc du genre :

    #!/usr/bin/env bash
    FILES=()
    OPTS=()
    for var in "$@"; do
     case "$var" in
     --*)
     OPTS+=("$var")
     ;;
     *)
     FILES+=("$var")
     ;;
     esac
    done
    echo "Fichiers par ordre chronologique: $(ls -rt "${FILES[@]}")"
    echo "Options pour la commande: ${OPTS[*]}"

    Mais on pourrait également imaginer de séparer les fichiers des options avec un -- (par exemple monscript.sh fichier1 file*.txt -- --option1 -truc2 :

    #!/usr/bin/env bash
    FILES=()
    OPTS=()
    DEST="FILES"
    for var in "$@"; do
     case "$var" in
     --)
     DEST="OPTS"
     ;;
     *)
     case "$DEST" in
     FILES)
     FILES+=("$var")
     ;;
     OPTS)
     OPTS+=("$var")
     ;;
     esac
     ;;
     esac
    done
    echo "Fichiers par ordre chronologique: $(ls -rt "${FILES[@]}")"
    echo "Options pour la commande: ${OPTS[*]}"