IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

La version 3.0 de Friendly Interactive Shell pour Windows, Linux et macOS est disponible


Sujet :

Shell et commandes GNU

  1. #1
    Chroniqueur Actualités
    Avatar de Patrick Ruiz
    Homme Profil pro
    Redacteur web
    Inscrit en
    Février 2017
    Messages
    2 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Redacteur web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2017
    Messages : 2 091
    Points : 56 500
    Points
    56 500
    Par défaut La version 3.0 de Friendly Interactive Shell pour Windows, Linux et macOS est disponible
    La version 3.0 de Friendly Interactive Shell pour Windows, Linux et macOS est disponible
    Avec plusieurs changements non rétrocompatibles

    La version 3.0 de Friendly Interactive Shell est disponible depuis peu avec vingt changements non rétrocompatibles et une liste de dépréciations beaucoup moins longue.

    Ce qui a changé et qui devrait poser des problèmes de compatibilité avec des scripts montés avec d’anciennes versions de Fish est que les tentatives d’assignation de valeur (via une unique commande) à plusieurs éléments d’un tableau sont désormais considérées comme invalides ; en d’autres termes, l’usage d’un set tab[1], tab[2] devrait générer le message « erreur de syntaxe. » Pareil pour les tentatives d’accès à l’élément « 0 » d’un tableau ; les têtes derrière le shell ont décidé que les indices des tableaux et listes sont numérotés à partir de 1 sous Fish 3.0, ce, comme c’est le pour des langages comme Visual Basic. L’un des plus gros changements aurait été le retrait de l’opérateur de redirection (^) et du caractère générique (?), mais ce n’est qu’une question de temps puisque l’équipe de développement les a fait apparaître sur la liste des dépréciations. Ces fonctionnalités vont donc tirer leur révérence dans une prochaine release.

    Le shell s’est amélioré du point de vue de la syntaxe. À défaut d’écrire and, or ou not dans le cadre de la gestion d’opérations logiques, le développeur peut désormais faire usage de &&, || et ! comme en langage C. Cette nouvelle disposition est destinée à faciliter la migration depuis des shells compatibles POSIX. En sus, la nouvelle mouture permet l’utilisation des variables comme commandes. Fish 3.0 introduit une liste d’une dizaine de changements en ce qui concerne les nouvelles commandes et les nouveaux éléments de syntaxe.


    Nom : Screenshot_2019-01-02 Programming with fish shell.png
Affichages : 4799
Taille : 39,8 Ko

    Fish est un shell Unix conçu pour être plus interactif et convivial que ses prédécesseurs (bash, zsh, csh, etc.) dans la même famille. La syntaxe de Fish ressemble à celle d’un shell compatible POSIX, mais s’en écarte en beaucoup d’aspects, notamment, ceux pour lesquels ses concepteurs ont estimé que le shell POSIX est mal conçu. Lors de la création de scripts complexes avec Fish, il peut être utile d’analyser les arguments fournis par le biais de la ligne de commande. La plupart des tutoriels disponibles en ligne s’appuient sur bash pour cette opération et vont expliquer l’utilisation de getopts. Sous Fish, cette commande n’est pas disponible, mais les utilisateurs disposent du standard Unix getopt pour atteindre le même objectif. Illustration avec la portion de code qui suit.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    function help_exit
        echo "Usage:  [options] arguments..."
        echo "Arguments:"
        echo "-a : Do something"
        echo "-d : Do something else"
        echo "-c stuff : Do someting with stuff"
        exit 1
    end
     
    set args (getopt -s sh abc: $argv); or help_exit
    set args (fish -c "for el in $args; echo \$el; end")
     
    set i 1
    while true
        switch $args[$i]
            case "-a"
                echo "argument a is specified"
            case "-b"
                echo "argument b is specified"
            case "-c"
                set i (math "$i + 1")
                echo "value of argument c is" $args[$i]
            case "--"
                break
        end
        set i (math "$i + 1")
    end
    set pargs
    if math "$i <" (count $args) > /dev/null
        set pargs $args[(math "$i + 1")..-1]
    end
     
    echo "positional arguments:" $pargs
    Source : Notes de version

    Et vous ?

    Qu’en pensez-vous ?

    Avez-vous déjà fait usage de ce shell ? Si oui, quel retour pouvez vous en faire ?

    Comment le comparez-vous à bash ? Csh ?

    Quel est votre shell préféré ? Pourquoi ?

    Voir aussi :

    Microsoft apporte le shell Unix Bash à Windows 10 : le résultat d'une collaboration avec Canonical

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 42
    Points : 33
    Points
    33
    Par défaut
    Curieux d'un cote on applique une convention C (&&, || et ! comme en langage C) et de l'autre on l'a retire en passant sur une syntaxe VB (tableaux et listes sont numérotés à partir de 1 ).

    Je lui préféré toujours ZSH.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Janvier 2019
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Janvier 2019
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Ils n'ont pas changé le fonctionnement des index, ça a toujours commencé à 1. Mais avant, et c'est toujours dans la doc, un index invalide était ignoré silencieusement, et maintenant cela provoque une erreur.

    > Note that array indices start at 1 in fish, not 0, as is more common in other languages. This is because many common Unix tools like seq are more suited to such use. An invalid index is silently ignored resulting in no value being substituted (not an empty string).

    C'est d'ailleurs ce qui est indiqué dans la Release Note…

    > Literally accessing a zero-index is now illegal syntax and is caught by the parser (#4862). (fish indices start at 1)

    Personnellement je ne l'utilise qu'en interactif, pour son auto-completion imbattable et la coloration à la volée. Pour les scripts, ça manque de portabilité (pas de compatibilité POSIX, et rarement installé). Pour les scripts, j'utilise ce bon vieux Bash.

Discussions similaires

  1. Réponses: 1
    Dernier message: 14/08/2012, 20h32
  2. Réponses: 0
    Dernier message: 14/09/2009, 05h30
  3. Réponses: 2
    Dernier message: 11/03/2009, 12h19
  4. Script shell pour tester si un répertoire est vide ou pas
    Par Ito dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 04/10/2006, 18h44
  5. Un shell pour Windows
    Par Grumph dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 08/08/2005, 09h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo