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

Linux Discussion :

reconnaissance du premier caractère d'un mot


Sujet :

Linux

  1. #1
    Membre confirmé Avatar de mptijr
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    408
    Détails du profil
    Informations personnelles :
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 408
    Points : 503
    Points
    503
    Par défaut reconnaissance du premier caractère d'un mot
    bonjour, je suis débutant en programmation bash.

    je me suis donné comme exercice d'écrire un script qui me permettra de déterminer la nature du premier caractère d'un mot saisi par un utilisateur: chiffre, majuscule, minuscule ou autre.

    Merci de votre aide.


    Aucune question n'est bête quand on veut apprendre.

  2. #2
    Membre régulier
    Inscrit en
    Janvier 2009
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 106
    Points : 76
    Points
    76
    Par défaut
    Bonjour,
    Citation Envoyé par mptijr Voir le message
    bonjour, je suis débutant en programmation bash.

    je me suis donné comme exercice d'écrire un script qui me permettra de déterminer la nature du premier caractère d'un mot saisi par un utilisateur: chiffre, majuscule, minuscule ou autre.

    Merci de votre aide.
    je ne sais pas si ceci peux t'aider...si j'étais à ta place j'essayerai d'extaire le premier caractère avec les substitutions de variable ${var:0:1}, et le soumertterait à un test avec case esac et je veriferais le type avec un grep

  3. #3
    Membre confirmé Avatar de mptijr
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    408
    Détails du profil
    Informations personnelles :
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 408
    Points : 503
    Points
    503
    Par défaut
    merci mon pote pour ta réponse.

    j'aimerais savoir la signification de cette substitution: $(var:0:1).


    Aucune question n'est bête quand on veut apprendre.

  4. #4
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 691
    Points : 30 988
    Points
    30 988
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par mptijr Voir le message
    merci mon pote pour ta réponse.

    j'aimerais savoir la signification de cette substitution: $(var:0:1).
    Déjà, la syntaxe n'est pas $(var:0:1) mais ${var:0:1}. Il serait judicieux de commencer par télécharger, imprimer et lire un tuto shell. Tu peux télécharger le mien ici

    Sinon, pour répondre à ta question, l'expression ${var:n:m} te renvoie m caractères pris à partir de la positions n (les positions étant numérotées à partir de 0).

    Citation Envoyé par mptijr Voir le message
    nature du premier caractère d'un mot saisi par un utilisateur: chiffre, majuscule, minuscule ou autre.
    Focalise-toi sur case/esac en utilisant astucieusement les expressions régulières
    Exemple
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    case $var in
        [0-9]) echo "$var est un chiffre";;
        *) echo "$var n'est pas un chiffre"
    esac

    Citation Envoyé par saw-next Voir le message
    ...et je veriferais le type avec un grep
    Intéressant. Je serais curieux de connaitre l'idée que t'as en tête...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #5
    Membre régulier
    Inscrit en
    Janvier 2009
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 106
    Points : 76
    Points
    76
    Par défaut
    Citation Envoyé par Sve@r Voir le message

    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    case $var in
        [0-9]) echo "$var est un chiffre";;
        *) echo "$var n'est pas un chiffre"
    esac


    Intéressant. Je serais curieux de connaitre l'idée que t'as en tête...
    Bonjour

    je ne sais pas si ça marche, avec une expression à évaluer dans les propriétés de l'instruction case esac mais c'est la première chose qui m'a été venu à l'esprit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    case $var in
        `grep [0-9] $var` ) echo "$var est un chiffre";;
        `grep [a-z] $var` ) echo "$var est une lettre minuscule";;
        `grep [A-Z] $var` ) echo "$var est une lettre majuscule";;
                               *) echo "$var est autre"
    esac

  6. #6
    Membre confirmé Avatar de mptijr
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    408
    Détails du profil
    Informations personnelles :
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 408
    Points : 503
    Points
    503
    Par défaut
    Citation Envoyé par saw-next Voir le message
    Bonjour

    je ne sais pas si ça marche, avec une expression à évaluer dans les propriétés de l'instruction case esac mais c'est la première chose qui m'a été venu à l'esprit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    case $var in
        `grep [0-9] $var` ) echo "$var est un chiffre";;
        `grep [a-z] $var` ) echo "$var est une lettre minuscule";;
        `grep [A-Z] $var` ) echo "$var est une lettre majuscule";;
                               *) echo "$var est autre"
    esac
    merci pour vos réponses: je suis en train de lire un doc du site et je m'entraîne progressivement.

    je pense que concernant les majuscules, il faudra utiliser l'expression [[:upper:]] et pour les minuscules [[:lower:]] des tests:

    voici une proposition

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    #!/bin/bash
    read -p "veuillez saisir un mot SVP" mot
    case $mot in
            [[:digit]]* $mot) echo "$mot commence par un chiffre;;
            [[:lower]]* $mot) echo "$mot commence par une minuscule;;
            [[:upper]]* $mot) echo "$mot commence par une majuscule;;
            *) echo "$mot commence par autre chose"
    esac


    Aucune question n'est bête quand on veut apprendre.

  7. #7
    Membre régulier
    Inscrit en
    Janvier 2009
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 106
    Points : 76
    Points
    76
    Par défaut
    ça ne fonctionne pas chez moi par contre ceci fonctionne:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    #!/bin/bash
    read -p "veuillez saisir un mot SVP" mot
    case $mot in
            [0-9]* ) echo "$mot commence par un chiffre";;
            [a-z]* ) echo "$mot commence par une minuscule";;
                  *) echo "$mot commence par autre chose"
    esac
    j'ai essayer de mettre un intervalle [A-Z]* pour ne capturer que les caractères majuscules mais on dirai que case n'est pas sensible à la casse

    j'ai aussi essayer une autre syntaxe mais ça ne fonctionne pas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    #!/bin/bash
    read -p "veuillez saisir un mot SVP" mot
    case ${mot:0:1} in
            [0-9] ) echo "$mot commence par un chiffre";;
            [a-z] ) echo "$mot commence par une minuscule";;
            [A-Z] ) echo "$mot commence par une minuscule";;
                  *) echo "$mot commence par autre chose"
    esac

  8. #8
    Membre averti Avatar de fransoo
    Inscrit en
    Novembre 2009
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 209
    Points : 300
    Points
    300
    Par défaut
    Citation Envoyé par saw-next Voir le message
    j'ai aussi essayer une autre syntaxe mais ça ne fonctionne pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #!/bin/bash
    read -p "veuillez saisir un mot SVP" mot
    case ${mot:0:1} in
            [0-9] ) echo "$mot commence par un chiffre";;
            [a-z] ) echo "$mot commence par une minuscule";;
            [A-Z] ) echo "$mot commence par une minuscule";;
                  *) echo "$mot commence par autre chose"
    esac
    Sûr que ce n'est pas la typo ?

  9. #9
    Membre régulier
    Inscrit en
    Janvier 2009
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 106
    Points : 76
    Points
    76
    Par défaut
    non c'est pas la typo

  10. #10
    Membre averti Avatar de fransoo
    Inscrit en
    Novembre 2009
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 209
    Points : 300
    Points
    300
    Par défaut
    En effet, alors ce qui suit fonctionne, mais il y a peut-être mieux...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #!/bin/bash
    read -p "veuillez saisir un mot SVP : " mot
    L=${mot:0:1}
    case $L in
    	[0-9] )	echo "$mot commence par un chiffre : $L"	;;
    	[a-z] )
    		if [ $L = $(echo $L | tr [a-z] [A-Z]) ]
    		then	echo "$mot commence par une Majuscule : $L"
    		else	echo "$mot commence par une minuscule : $L"
    		fi	;;
    	*)	echo "$mot commence par autre chose"	;;
    esac

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 553
    Points : 19 393
    Points
    19 393
    Par défaut
    moi, j'aime bien ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #!/bin/bash
    read -p "veuillez saisir un mot SVP" mot
    case ${mot::1} in
            [[:digit:]]) echo "$mot commence par un chiffre;;
            [[:lower:]]) echo "$mot commence par une minuscule;;
            [[:upper:]]) echo "$mot commence par une majuscule;;
            *) echo "$mot commence par autre chose";;
    esac
    c'était une bonne idée pas aboutie

    maintenant, elle l'est.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  12. #12
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 691
    Points : 30 988
    Points
    30 988
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par saw-next Voir le message
    Bonjour

    je ne sais pas si ça marche, avec une expression à évaluer dans les propriétés de l'instruction case esac mais c'est la première chose qui m'a été venu à l'esprit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    case $var in
        `grep [0-9] $var` ) echo "$var est un chiffre";;
        `grep [a-z] $var` ) echo "$var est une lettre minuscule";;
        `grep [A-Z] $var` ) echo "$var est une lettre majuscule";;
                               *) echo "$var est autre"
    esac
    Ok, je vois maintenant ton idée.
    Deux problèmes:
    1) on ne peut pas faire de grep sur une variable. On ne peut faire de grep que sur un fichier ou bien sur un flux stdin.
    Donc ton grep [0-9] $var devra être réécrit echo $var |grep [0-9]. A vérifier aussi si grep accepte les expressions régulières (je suis pas certain de moi là dessus) sinon passer par egrep.
    2) ton case va essayer de comparer la variable avec la chaine extraite de la variable. Bref moi je pige ton idée... le shell j'en suis moins sûr


    Citation Envoyé par saw-next Voir le message
    j'ai essayer de mettre un intervalle [A-Z]* pour ne capturer que les caractères majuscules mais on dirai que case n'est pas sensible à la casse
    Si si, il l'est !!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #!/bin/bash
    read -p "veuillez saisir un mot SVP" mot
    case $mot in
            [0-9]* ) echo "$mot commence par un chiffre";;
            [a-z]* ) echo "$mot commence par une minuscule";;
            [A-Z]* ) echo "$mot commence par une majuscule";;
                  *) echo "$mot commence par autre chose"
    esac
    Citation Envoyé par saw-next Voir le message
    j'ai aussi essayer une autre syntaxe mais ça ne fonctionne pas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #!/bin/bash
    read -p "veuillez saisir un mot SVP" mot
    case ${mot:0:1} in
            [0-9] ) echo "$mot commence par un chiffre";;
            [a-z] ) echo "$mot commence par une minuscule";;
            [A-Z] ) echo "$mot commence par une minuscule";;
                  *) echo "$mot commence par autre chose"
    esac
    Citation Envoyé par saw-next Voir le message
    non c'est pas la typo
    Chez moi, ça fonctionne. Mais malgré ta dénégation, j'ai quand-même pris soin de rectifier le libellé...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #!/bin/bash
    read -p "veuillez saisir un mot SVP" mot
    case ${mot:0:1} in
            [0-9] ) echo "$mot commence par un chiffre";;
            [a-z] ) echo "$mot commence par une minuscule";;
            [A-Z] ) echo "$mot commence par une majuscule";;
                  *) echo "$mot commence par autre chose"
    esac
    Citation Envoyé par saw-next Voir le message
    En effet, alors ce qui suit fonctionne, mais il y a peut-être mieux...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #!/bin/bash
    read -p "veuillez saisir un mot SVP : " mot
    L=${mot:0:1}
    case $L in
    	[0-9] )	echo "$mot commence par un chiffre : $L"	;;
    	[a-z] )
    		if [ $L = $(echo $L | tr [a-z] [A-Z]) ]
    		then	echo "$mot commence par une Majuscule : $L"
    		else	echo "$mot commence par une minuscule : $L"
    		fi	;;
    	*)	echo "$mot commence par autre chose"	;;
    esac
    ARGH cte complication !!! Mais au-moins tu commences à bien te débrouiller avec le mécanisme des pipes pour faire des travaux à la chaine
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  13. #13
    Membre régulier
    Inscrit en
    Janvier 2009
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 106
    Points : 76
    Points
    76
    Par défaut
    Bonsoir,

    merci les gars pour tous vos propositions, malheureusement :

    * avec le code de fransoo ça me retourne l'erreur : ./j.sh: 3: Bad substitution
    * avec le code de N_BaH ça me retourne l'erreur: ./j.sh: 7: Syntax error: Unterminated quoted string
    * Sve@r, ton premier code fonctionne bien mais ton second code ça me retourne l'erreur:

    ./j.sh: 8: Bad substitution


    je crois que c'est une malédiction pourquoi ça tombe toujours sur moi ...

  14. #14
    Membre régulier
    Inscrit en
    Janvier 2009
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 106
    Points : 76
    Points
    76
    Par défaut
    ah j'ai compris l'erreur venait de ${var:0:1} on dirai que c'est pas pris en charge:

    voici mes tests:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $ read -p ">>>"  var
    $>>>hello
    $  echo ${var:0:1}
    $ h
    donc ça passe, par contre si je mets le code dans un script

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $ cat ./test.sh
    #!/bin/bash
    read -p ">>>"  var
    echo ${var:0:1}
    
    $ ./test.sh
    >>>hello
    ./j.sh: 3: Bad substitution
    $
    ça passe pas, es-ce un bug

  15. #15
    Membre averti Avatar de fransoo
    Inscrit en
    Novembre 2009
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 209
    Points : 300
    Points
    300
    Par défaut
    Le code de N_BaH corrigé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    read -p "veuillez saisir un mot SVP : " mot
    case ${mot::1} in
            [[:digit:]]) echo "$mot commence par un chiffre" ;;
            [[:lower:]]) echo "$mot commence par une minuscule" ;;
            [[:upper:]]) echo "$mot commence par une majuscule" ;;
            *) echo "$mot commence par autre chose" ;;
    esac

  16. #16
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 691
    Points : 30 988
    Points
    30 988
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par saw-next Voir le message
    ah j'ai compris l'erreur venait de ${var:0:1} on dirai que c'est pas pris en charge:

    voici mes tests:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $ read -p ">>>"  var
    $>>>hello
    $  echo ${var:0:1}
    $ h
    donc ça passe, par contre si je mets le code dans un script

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $ cat ./test.sh
    #!/bin/bash
    read -p ">>>"  var
    echo ${var:0:1}
    
    $ ./test.sh
    >>>hello
    ./j.sh: 3: Bad substitution
    $
    ça passe pas, es-ce un bug
    Vraiment très bizarre. L'expression ${var:m:n} est acceptée par le bash (en fait elle est arrivée avec lui car les shells précédents ne la connaissaient pas).

    Et chez-moi, ça marche


    Essaye ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #!/bin/bash
    var="toto"
    set -x
    echo ${var:0:1}
    Le set -x active le débugging. Le shell te dira exactement ce qu'il comprend.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  17. #17
    Membre régulier
    Inscrit en
    Janvier 2009
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 106
    Points : 76
    Points
    76
    Par défaut
    c'est toujours la même erreur avec ce code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #!/bin/bash
    var="toto"
    set -x
    echo ${var:0:1}
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    foo@casa:~/Bureau$ sh ./j.sh
    ./j.sh: 4: Bad substitution
    foo@casa:~/Bureau$
    étrange..non

  18. #18
    Membre régulier
    Inscrit en
    Janvier 2009
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 106
    Points : 76
    Points
    76
    Par défaut
    oh le boulet que je suis:

    foo@casa:~/Bureau$ sh ./j.sh
    ./j.sh: 4: Bad substitution
    foo@casa:~/Bureau$


  19. #19
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 691
    Points : 30 988
    Points
    30 988
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par saw-next Voir le message
    oh le boulet que je suis:

    foo@casa:~/Bureau$ sh ./j.sh
    ./j.sh: 4: Bad substitution
    foo@casa:~/Bureau$

    Joli réflexe, je n'avais pas fait gaffe.
    Malheureusement je ne pense pas que ce soit à cause de ça. Tout d'abord je viens de tester avec mon script et ça marche pareil.
    De plus, comme bash est 100% compatible sh, le sh a aujourd'hui disparu et il est devenu un lien vers bash.
    Et donc, qu'on fasse commencer un script par #!/bin/sh ou #!/bin/bash; il sera interprété par le même programme
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  20. #20
    Membre régulier
    Inscrit en
    Janvier 2009
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 106
    Points : 76
    Points
    76
    Par défaut
    merci du retour,

    Citation Envoyé par Sve@r Voir le message
    Malheureusement je ne pense pas que ce soit à cause de ça. Tout d'abord je viens de tester avec mon script et ça marche pareil.
    De plus, comme bash est 100% compatible sh, le sh a aujourd'hui disparu et il est devenu un lien vers bash.
    Et donc, qu'on fasse commencer un script par #!/bin/sh ou #!/bin/bash; il sera interprété par le même programme
    voici ce que j'ai fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    foo@casa:~/Bureau$ cat j.sh
    #!/bin/bash
    var="hello"
    echo ${var:0:1}
    foo@casa:~/Bureau$
    d'abord j'ai essayer:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    foo@casa:~/Bureau$ sh  ./j.sh
    ./j.sh: 3: Bad substitution
    foo@casa:~/Bureau$
    comme tu vois ça me retourne une erreur

    ensuite:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    foo@casa:~/Bureau$ bash  ./j.sh
    h
    foo@casa:~/Bureau$
    et là ça marche mais je ne sais ni pourquoi ni comment ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [AC-2003] mise en gras du premier caractère d'un mot
    Par ygsi5355 dans le forum IHM
    Réponses: 4
    Dernier message: 14/12/2010, 06h43
  2. Réponses: 4
    Dernier message: 03/07/2009, 09h45
  3. Réponses: 5
    Dernier message: 30/10/2006, 13h37
  4. Selection des x premiers caractères dans un champ précis
    Par Schulman dans le forum Langage SQL
    Réponses: 2
    Dernier message: 12/01/2005, 09h23
  5. Réponses: 2
    Dernier message: 04/09/2004, 10h53

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