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 :

concatener et substr


Sujet :

Shell et commandes GNU

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 705
    Points : 934
    Points
    934
    Par défaut concatener et substr
    Bonjour

    J'ai besoin de recuperer le nom du script que je lance ex ./toto.sh il me faut toto
    J'arrive à le faire en deux lignes, mais pas en une seule
    SVP
    Merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    #/bin/bash
    echo 'arg:'$0
    b=${0##*/}
    c=${b/%.*}
    echo $c

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 552
    Points : 19 392
    Points
    19 392
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #/bin/bash
    echo "arg: $0"
    b="${0##*/}"; c="${b/%.*}" #Voilà! une seule ligne. :)
    echo "$c"

    que veux-tu de plus ?

    utiliser des commandes externes pour si peu, je ne vois pas l'intérêt.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 705
    Points : 934
    Points
    934
    Par défaut
    Bonjour

    Me passer de b et c avoir une seule , car je vais le passer en argument a un programme Java

  4. #4
    Expert éminent

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Points : 6 276
    Points
    6 276
    Par défaut basename ?
    Salut,

    Et la commande basename ne ferait-elle pas l'affaire ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $ cat foo.sh
    #! /bin/bash
     
    echo "Affiche \$0 : "$0
    echo -e "Affiche basename : $(basename -s .sh $0)"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $ ./foo.sh
    Affiche $0 : ./foo.sh
    Affiche basename : foo
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ basename -s .sh ./foo.sh
    foo
    $ man woman
    Il n'y a pas de page de manuel pour woman.

  5. #5
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 552
    Points : 19 392
    Points
    19 392
    Par défaut
    je vais le passer en argument a un programme Java
    et alors ? tu lui donnes "$c". en quoi c'est gênant ?

    je te le redis, je préfère encore tout faire en bash, plutôt que d'appeler une commande externe.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  6. #6
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 290
    Points : 12 753
    Points
    12 753
    Par défaut
    Fun...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $ cat /tmp/foo.sh
    #!/bin/bash
    echo "Affiche \$0 : "$0
    [[ $0 =~ ^.*/(.*)\..* ]] && echo "${BASH_REMATCH[1]}"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $ /tmp/foo.sh
    Affiche $0 : /tmp/foo.sh
    foo
    Cordialement.

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 705
    Points : 934
    Points
    934
    Par défaut
    Bonjour

    Merci à tous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [BATCH] Substring et Concatenation
    Par alliance dans le forum Windows
    Réponses: 1
    Dernier message: 24/01/2008, 11h59
  2. Concaténer deux fichiers Ligne/Ligne avec SH
    Par guiltouf dans le forum Linux
    Réponses: 7
    Dernier message: 22/05/2007, 14h35
  3. Concaténation de chaine de caractères
    Par joy dans le forum Linux
    Réponses: 5
    Dernier message: 07/07/2003, 13h03
  4. probleme de concatenation
    Par cyna dans le forum C
    Réponses: 2
    Dernier message: 23/08/2002, 10h41
  5. Réponses: 2
    Dernier message: 10/07/2002, 11h51

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