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

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [Script shell] Debutant

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Script shell] Debutant

n°930341
jeremie95
Posté le 04-07-2007 à 14:54:05  profilanswer
 

bonjour,  
 
je me rappel plus trop des commandes de base d'argument en script shell et  
ce n 'est pas evident de chercher sur google faute de caracteres incomprehensibles
 
Je recherche les commandes exact pour tronquer un caracter à partir d'un point ou d'une lettre
 
d'apres mes souvenirs c'était ##+*. ( mais en fait je me souviens plus)  
 
prenons un exemple une chaine de caractere :  "script.shel.alpha"
 
et je souhaite extraire, de ce mot, la parti "script" et donc dire (en francais ) prendre la chaine de caractere jusqu'au premier "." et tronquer le reste  
 
 :whistle: afin d obtenir : "script"
 
un peu pour donner un programme de cette forme  

Code :
  1. bash# ./prog script.shell.alpha
  2. argument 1 : script
  3. argument 2 : shell
  4. argument 3 : alpha
  5. // ce script aura pour but diviser mon argument en plusieur fraction delimiter par un .
  6. // si j 'edite mon fichier prog
  7. #!/bin/bash
  8. $all=$1
  9. $1=${##+.*$all } // script
  10. $2=${{##*.+$all}##+.*$all} // enleve tout avant le 1er "." puis enleve tous apres le dernier "."
  11. $3=${##*.+$all}// aplah
  12. echo ... $1
  13. echo ... $2
  14. echo ... $3


 
 
je precise que c'est ce qu il y a en rouge que je veux connaitre car je sais que la syntaxe est mauvaise ...  
si vous avez un petit tuto sous la main ca m aiderai bien ...
${##+.*$all }
${{##*.+$all}##+.*$all}
$3=${##*.+$all}
 
Egalement :
 
les differentes commandes d arguments avec leurs definitions je suis sur d'en oublier :  
$1 argument 1  
$# tous les arguments
$* ? sais plus
$0 ?

 
 
 
Merci


Message édité par jeremie95 le 04-07-2007 à 14:56:43
mood
Publicité
Posté le 04-07-2007 à 14:54:05  profilanswer
 

n°930345
wedgeant
Da penguin inside
Posté le 04-07-2007 à 14:57:03  profilanswer
 

[:cerveau dawa psycho]
 

Code :
  1. echo "blabla.blibli.blublu" | awk -F. '{print $x}'


 
Où x est le numéro de la partie à récupérer :) (1 pour la première, 2 pour la deuxième etc ...)


---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
n°930351
jeremie95
Posté le 04-07-2007 à 15:01:09  profilanswer
 

merci de cette reponse rapide :)
 
mais je prefererais avoir la methode que j ai enumeré car je vais avoir une utilisation autre ...
 
et je prefererais retrouver mes commandes que j ai oublier quand j'etais piti  
 
meme si cette commande est logique selon moi ...
 
et les argument $* $0 etc .. tu te souviens de la liste complete ?  
 
ce serais plutot pour faire un if [ $chaine de caractere tronqué = rpm ] ...


Message édité par jeremie95 le 04-07-2007 à 15:02:39
n°930354
Fork Bomb
Obsédé textuel
Posté le 04-07-2007 à 15:03:04  profilanswer
 

sed et cut servent pas à ça ?
 
Avant de me faire agresser: j'y connais rien en prog'. :/


Message édité par Fork Bomb le 04-07-2007 à 15:03:40

---------------
Décentralisons Internet-Bépo-Troll Bingo - "Pour adoucir le mélange, pressez trois quartiers d’orange !"
n°930358
wedgeant
Da penguin inside
Posté le 04-07-2007 à 15:10:16  profilanswer
 

tu trouveras toutes les définitions de variable dans la page de man de bash, mais rapidement:
$0 = nom de la commande utilisée
$1 = premier paramètre
$2 = 2e paramètres
$3 = etc ...
$# = nombre de paramètres
$* = liste des paramètres (je crois)
$@ = tableau des paramètres (je crois aussi)
 
etc ...
 
Sinon, oui, y'a cut qui marche bien, mais awk caÿmieux :o
 
Ca sera quoi comme utilisation ? :gratgrat:


---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
n°930409
matafan
Posté le 04-07-2007 à 16:25:51  profilanswer
 

$ toto=script.shel.alpha
$ echo ${toto%%.*}
script


${var%%pattern} supprime de la fin de <var> le plus de caractères possible qui matchent <pattern> (au sens "filename expansion", pas regexp).
 
Edit : Et pour ce qui est du tuto, tu fais "man bash" et tu vas au paragraphe "Parameter Expansion" (ou tu cherche "%%" ou "##" ).


Message édité par matafan le 04-07-2007 à 21:49:40
n°930410
fighting_f​alcon
Posté le 04-07-2007 à 16:27:12  profilanswer
 

Citation :

$* = liste des paramètres (je crois)


oui
 

Citation :

$@ = tableau des paramètres (je crois aussi)


je pense aussi
 
$$ = PID du processus courant
 
$? = code de retour de la dernière commande exécutée

n°930411
wedgeant
Da penguin inside
Posté le 04-07-2007 à 16:28:33  profilanswer
 

fighting_falcon a écrit :


oui
 
je pense aussi
 
$$ = PID du processus courant
 
$? = code de retour de la dernière commande exécutée


 [:wedgeant]  
 
et merci de la confirmation, j'ai pas la page de man de bash sous la main :jap:


---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
n°930414
matafan
Posté le 04-07-2007 à 16:34:02  profilanswer
 

Encore une fois, man bash, paragraphe "Special Parameters"...

n°930422
jeremie95
Posté le 04-07-2007 à 17:00:33  profilanswer
 

@matafan tu me confirmes ?
 
 
$ toto=script.shel.alpha  
$ echo ${toto*.%%}  
alpha  
 
 
 
merci beaucoup en tous cas :)
 


Message édité par jeremie95 le 04-07-2007 à 17:01:31
mood
Publicité
Posté le 04-07-2007 à 17:00:33  profilanswer
 

n°930453
ttys
Posté le 04-07-2007 à 19:22:32  profilanswer
 

${variable#motif} supprime le préfixe de $variable le plus court correspondant au motif.
${variable##motif} supprime le préfixe de $variable le plus long correspondant au motif.
${variable%motif} supprime le suffixe de $variable le plus court correspondant au motif.
${variable%%motif} supprime le suffixe de $variable le plus long correspondant au motif.

n°930628
jeremie95
Posté le 05-07-2007 à 10:29:58  profilanswer
 

merci

n°930787
jeremie95
Posté le 05-07-2007 à 18:36:49  profilanswer
 

${1##*.}
pour l argument 1  
merci

n°1068343
basjaon
Posté le 21-08-2008 à 14:29:34  profilanswer
 

Bonjour, je veux crée un script shell pour lancer Xchat rejoint automatique au canale que je préfere! s 'il vous plait, aider moi car j'suis debutant

n°1068344
basjaon
Posté le 21-08-2008 à 14:32:08  profilanswer
 

Bonjour, je veux crée un script shell pour lancer Xchat en rejoingant  automatiquement au canale que je préfere! s 'il vous plait, aider moi car j'suis debutant

n°1068495
macfennec
Zorro del Sáhara
Posté le 22-08-2008 à 09:09:21  profilanswer
 

C'est de base dans Xchat

n°1068672
chaica
Posté le 22-08-2008 à 18:35:13  profilanswer
 

macfennec a écrit :

C'est de base dans Xchat


+1


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

  [Script shell] Debutant

 

Sujets relatifs
[Résolu] script au montage d'une clé USBScript pour galerie photo
[Résolu]Script Shell pour RsyncScript pour effacer requetes SQL sur Webmin
script zsh avec utilisation de awk, passage de variableScript python mplayer
Script changement adresse macscript un peu compliqué de réorganisation de lignes
Plus de sujets relatifs à : [Script shell] Debutant


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