Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1784 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [shell] Entrer une variable

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[shell] Entrer une variable

n°422538
trakiss
Posté le 02-03-2004 à 23:19:14  profilanswer
 

Hello,
 
Voila, j'aimerais avoir un truc de ce style dans mon script sh :
 
./script.sh
L'user est ? (usr a rentrer ici)
et apres ca l'envoie a :
adduser $user
 
c'est u e xemple, je men servirais aussi pour dautres scripts..
 
quelqu'un sait il comment faire ?

mood
Publicité
Posté le 02-03-2004 à 23:19:14  profilanswer
 

n°422540
eL_Shaman_​__
Plop.
Posté le 02-03-2004 à 23:22:40  profilanswer
 

petit exemple:
 
echo "entre ton nom, mon petit:"
read nom
echo $nom

n°422542
trakiss
Posté le 02-03-2004 à 23:24:01  profilanswer
 

thx

n°422550
trakiss
Posté le 02-03-2004 à 23:32:33  profilanswer
 

et pour faire une verification c bien ca : ?
if ($nom == 'cstrike' or $nom == 'valve')
{
code
}
else
{
}
 
?

n°422557
trakiss
Posté le 02-03-2004 à 23:37:11  profilanswer
 

if [ $nom == 'cstrike' ]
then
echo gagneeeee
else
echo  perduuu
fi
 
c mieu lol ^^

n°423916
trakiss
Posté le 04-03-2004 à 18:58:05  profilanswer
 

comment pourrais récupéré une variable de ce style :
./truc.sh -bidule=1 ?
 
++

n°640081
trakiss
Posté le 22-02-2005 à 02:55:24  profilanswer
 

up

n°640273
0liv
Posté le 22-02-2005 à 14:42:39  profilanswer
 

Bonjour,
 
si tu veux récupérer -bidule=1 c'est avec les $1 $2...
il y a aussi shift qui est pas mal utile enfin va voir ce lien pour un vrai tuto:
http://www.math.uni-bremen.de/techdoc/software1/bash/

n°640796
Sve@r
Posté le 23-02-2005 à 13:25:43  profilanswer
 

0liv a écrit :

Bonjour,
 
si tu veux récupérer -bidule=1 c'est avec les $1 $2...
il y a aussi shift qui est pas mal utile enfin va voir ce lien pour un vrai tuto:
http://www.math.uni-bremen.de/techdoc/software1/bash/


 
Ou bien va voir ce lien pour un vrai cours sur le shell en français http://fr.lang.free.fr/cours/Shell_v1.2.doc

n°640814
0liv
Posté le 23-02-2005 à 14:09:51  profilanswer
 

pendant que j'y pense il y a aussi les commandes getopt et getopts qui sont pas mal utiles pour "parser" une ligne d'option ;)

mood
Publicité
Posté le 23-02-2005 à 14:09:51  profilanswer
 

n°640822
xouille38
Posté le 23-02-2005 à 14:32:38  profilanswer
 

0liv a écrit :

pendant que j'y pense il y a aussi les commandes getopt et getopts qui sont pas mal utiles pour "parser" une ligne d'option ;)


 
D'ailleurs, une question corrolaire :
à quoi sert shift sans getopt?

n°640833
cycojesus
Mèo Lười
Posté le 23-02-2005 à 15:02:34  profilanswer
 

xouille38 a écrit :

D'ailleurs, une question corrolaire :
à quoi sert shift sans getopt?


à faire ce genre de chose :

Code :
  1. ...
  2. while [ "x$1" != "x"  ]
  3. do
  4.   case "$1" in
  5.       "--input" | "-i" )
  6.           shift
  7.           INPUT=$1
  8.           shift
  9.           ;;
  10.       "--output" | "-o" )
  11.           shift
  12.           OUTPUT=$1
  13.           shift
  14.           ;;
  15.       "--help" | "-h" | * )
  16.           echo "$(basename $0) : Convert Avi file into Matroska"
  17.           echo "  Usage : $(basename $0) [options]"
  18.           echo "    Options :"
  19.           echo "      -i f  | --input f         : f is the input file [MANDATORY]"
  20.           echo "      -o f  | --output f        : f is the output file"
  21.           echo "      -h    | --help            : what you're reading right now !"
  22.           exit
  23.           ;;
  24.   esac
  25. done
  26. ...


---------------
Chết rồi ! ✍ ⌥⌘ http://github.com/gwenhael-le-moine/slackbuilds/
n°640834
0liv
Posté le 23-02-2005 à 15:05:10  profilanswer
 

on peut difficilement utiliser getopt sans shift...
mais si tu fais un script bash tout bête style: ./foo arg1 arg2 arg3... argn
tu n'auras pas besoin de getopt car tu désigneras argi avec $i par contre tu pourras avoir besoin de shift pour passer simplement de $i à $(i+k)

n°640841
Sve@r
Posté le 23-02-2005 à 15:24:32  profilanswer
 

xouille38 a écrit :

D'ailleurs, une question corrolaire :
à quoi sert shift sans getopt?


 
Une fois, j'ai eu à traiter mes arguments deux par deux.
J'ai donc écrit une simple boucle "while test $# -gt 1" puis j'ai fait un "shift 2 " en fin de boucle.
Exemple concret d'un shift sans getopt...


Message édité par Sve@r le 23-02-2005 à 15:25:21
n°640889
xouille38
Posté le 23-02-2005 à 17:43:38  profilanswer
 

cycojesus a écrit :

à faire ce genre de chose :

Code :
  1. ...
  2. while [ "x$1" != "x"  ]
  3. do
  4.   case "$1" in
  5.       "--input" | "-i" )
  6.           shift
  7.           INPUT=$1
  8.           shift
  9.           ;;
  10.       "--output" | "-o" )
  11.           shift
  12.           OUTPUT=$1
  13.           shift
  14.           ;;
  15.       "--help" | "-h" | * )
  16.           echo "$(basename $0) : Convert Avi file into Matroska"
  17.           echo "  Usage : $(basename $0) [options]"
  18.           echo "    Options :"
  19.           echo "      -i f  | --input f         : f is the input file [MANDATORY]"
  20.           echo "      -o f  | --output f        : f is the output file"
  21.           echo "      -h    | --help            : what you're reading right now !"
  22.           exit
  23.           ;;
  24.   esac
  25. done
  26. ...



 
vi mais ça j'aurais mis un getopt... :D  
 

n°640890
xouille38
Posté le 23-02-2005 à 17:47:25  profilanswer
 

Non mais en fait elle est con ma question... Rien que dans le cas d'un script à nombre d'arguments variables ça aide bien!
marchi quand même!

n°640898
xouille38
Posté le 23-02-2005 à 18:30:18  profilanswer
 

ah pis tiens, l'explication historique :
en Bourne shell on a pas droit à ${10} donc pas d'acces au dixième paramètre sans shift.

n°641157
Sve@r
Posté le 24-02-2005 à 13:08:36  profilanswer
 

xouille38 a écrit :

ah pis tiens, l'explication historique :
en Bourne shell on a pas droit à ${10} donc pas d'acces au dixième paramètre sans shift.


 
i=0
for arg in $*
do
     i=`expr $i + 1`
    test $i -eq 10 && echo $arg
done
 
Exemple concret d'accès au 10° paramètre sans shift (c'est tordu certes... mais les unixiens sont tous tordus ;-)


Message édité par Sve@r le 24-02-2005 à 13:09:28

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [shell] Entrer une variable

 

Sujets relatifs
[Shell] Votre petit préféré ?Un truc qui me broute avec le nouveau shell de la RedHat
[shell] Variables INCLUDE et LIBRARY ? (qqchose comme cà)[shell] Help, j'ai planté le shell
[shell] recherche de chaine de caracter dans un fichier.Debian 2.4.x a 2.6.2 impossible de me loguer au shell . erreur clavier
Connaitre le nombre de variable passé[shell] comparer un fichier local et un fichier distant (http)?
lister les alias en shell ??Sauvegarder l'historique des commandes tapées dans le shell.
Plus de sujets relatifs à : [shell] Entrer une variable


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR