Forum debian-fr.org

Rechercher:

* Connexion   * M’enregistrer

* FAQ    * Rechercher





Poster un nouveau sujet Répondre au sujet  [ 26 messages ]  Aller à la page 1, 2  Suivante
Auteur Message
MessagePosté: 12 Juil 2011 11:43 
Hors ligne
Administrateur du forum
Avatar de l’utilisateur

Inscription: 15 Oct 2004 00:13
Messages: 23173
Localisation: Père.Igor (24)
Dans certains scripts bash, je vois que les variables sont déclarées, tandis que dans d'autres, elles sont appliquées directement, sans déclaration préalable.
Code:
unUser="toto"
id ${unUser} > ...

De plus, à l'application, des fois elles sont de la forme ${variable}, tandis que d'autres fois, les { } sont absentes.
Votre avis ?

_________________
.
"L'action est plus efficace que la polémique, mais plus rare." Ricardo (1936-20..)
http://rictux.fr


Haut
 Profil  
 
MessagePosté: 12 Juil 2011 13:19 
Hors ligne
Très bavard(e)!

Inscription: 29 Juil 2009 18:11
Messages: 294
Salut,
(je reconnais ces 2 lignes ;))
1er point :
les shells sont assez permissistes et en cela la déclaration des variables n'est pas une obligation mais cela permet :
- d'initialiser (ou de réinitialiser) les variables et donc de s'assurer de leur valeur (en fonction de la portée et/ou des cycles d'exécution en cas de boucle/récurrence)
- de prévenir des erreurs en cas d'utilisation de l'option -u (de bash)

de même, le typage à la déclaration n'est pas une obligation mais le fait de l'utiliser permet une certaine rigueur lors de leur utilisation au sein du script.


2nd point :
les {} permettent juste de délimiter le nom des variables.
Si l'on prend comme exemple les variables nommées toto et toto_ et que l'on souhaite afficher uniquement la valeur de la variable "toto" immédiatement suivi d'un _ :
Code:
toto=1
toto_=2
echo $toto_
echo ${toto}_


le 1er echo affichera "2" alors que le 2nd affichera "1_"

les {} ne sont donc pas une obligation (sauf lors de l'utilisation des différentes expansions ou de la manipulation de tableau) mais dans de très rares cas, cela peut être utile.

pour ma part, je considère que c'est une bonne pratique (l'emploie permanent des {}) car l'identification des variables est facilitée.


Haut
 Profil  
 
MessagePosté: 12 Juil 2011 14:02 
Hors ligne
Administrateur du forum
Avatar de l’utilisateur

Inscription: 15 Oct 2004 00:13
Messages: 23173
Localisation: Père.Igor (24)
Je suis du même avis mais je voulais confirmation.
Je ne programme plus depuis ~ 20 ans mais je me souviens encore un tout petit peu de Pascal et de C, où les règles étaient strictes.
Comme je ne sais pas trop quoi faire en ce moment, même pas de bugs à corriger :roll: , je m'initie un peu à) Bash.
Des tutos, j'en ai vu pas mal et suffisants pour apprendre mais ce que je chercherais, si quelqu'un avait, c'est une liste "claire et pratique" des arguments. Le man ? oui, bien sûr mais comme praticité, on fait mieux.
Ce que j'aimerais, c'est une sorte de tableau avec en 1ère colonne, ce que l'on veut faire (ordre alphabétique de préférence) et en seconde, l'argument.
Tu me diras que je peux facilement le faire à la mano ... je suis d'origine Corse ;)

EDIT :
En complément des question originelles :
then
sur la même ligne après ';'
ou sur une ligne en dessous ?
Je préfère en dessous, pour ma part.

_________________
.
"L'action est plus efficace que la polémique, mais plus rare." Ricardo (1936-20..)
http://rictux.fr


Haut
 Profil  
 
MessagePosté: 12 Juil 2011 21:19 
Hors ligne
Très bavard(e)!

Inscription: 29 Juil 2009 18:11
Messages: 294
j'opte également pour la version "2 lignes" mais je pense qu'il s'agit plus par habitude que pour une réelle raison si ce n'est que l'oubli du ; est vite arrivé.

sinon, qu'entends-tu par liste "claire et pratique" des arguments Arguments de quoi ? toutes les commandes bash ?

ma "source" est exclusivement le man. beaucoup consultent l'Advance Bash Scripting mais il n'est plus (ou guère) maintenu et certaines informations sont devenues dépréciées.


Haut
 Profil  
 
MessagePosté: 12 Juil 2011 23:02 
Hors ligne
Administrateur du forum
Avatar de l’utilisateur

Inscription: 15 Oct 2004 00:13
Messages: 23173
Localisation: Père.Igor (24)
Ben pour moi, les arguments ce sont ces trucs courts d'une lettre précédée d'un tiret.
-n
-e
etc.

_________________
.
"L'action est plus efficace que la polémique, mais plus rare." Ricardo (1936-20..)
http://rictux.fr


Haut
 Profil  
 
MessagePosté: 13 Juil 2011 00:54 
Je n'ai pas le niveau pour répondre à tes questions, mais dès que j'ai un moment j'étudie

http://www.siteduzero.com/tutoriel-3-96 ... shell.html

un fichier en pdf
ftp://ftp-developpez.com/eric-sanchis/IntroProgBash.pdf

:006


Haut
  
 
MessagePosté: 13 Juil 2011 01:10 
Hors ligne
Administrateur du forum
Avatar de l’utilisateur

Inscription: 15 Oct 2004 00:13
Messages: 23173
Localisation: Père.Igor (24)
Merci mais j'ai la réponse, seulement, je voudrais un tableau pratique.
On peut tout avoir ici :
http://abs.traduc.org/abs-fr/index.html
et de façon plus basique, là :
http://www.siteduzero.com/tutoriel-3-105678-introduction-aux-scripts-shell.html
ou encore dans le man.

_________________
.
"L'action est plus efficace que la polémique, mais plus rare." Ricardo (1936-20..)
http://rictux.fr


Haut
 Profil  
 
MessagePosté: 13 Juil 2011 07:34 
Hors ligne
Très bavard(e)!

Inscription: 29 Juil 2009 18:11
Messages: 294
ricardo a écrit:
Ben pour moi, les arguments ce sont ces trucs courts d'une lettre précédée d'un tiret.
-n
-e
etc.

Je comprends bien !
mais, quel est le périmètre ?
les options de cut, xargs, sed, awk, paste, ps, ls, merge, date, cat, tac, head, tail, ...etc et de bash ou uniquement de bash ?

car ce sont 2 choses différentes...
De plus, cela me parait fastidieux car ces options dépendent de la version des outils. Il est donc extrêmement difficile d'avoir une telle liste.

Cela dit, on peut déjà commencer par un début : lister une description de toutes les commandes (sections 1 et 8) dont tu disposes :
Code:
{ man -k -s 1 '.*'; man -s 8 '.*'; }|sort
# ou son équivalent directement avec apropos
{ apropos -s 1 -w '*'; apropos -s 8 -w '*'; } |sort


Ensuite, pour avoir la partie 'OPTIONS' de chaque manual, c'est déjà plus chaud !


Haut
 Profil  
 
MessagePosté: 13 Juil 2011 11:14 
Hors ligne
Administrateur du forum
Avatar de l’utilisateur

Inscription: 15 Oct 2004 00:13
Messages: 23173
Localisation: Père.Igor (24)
Totor a écrit:
Cela dit, on peut déjà commencer par un début : lister une description de toutes les commandes (sections 1 et 8) dont tu disposes :
Citation:
{ man -k -s 1 '.*'; man -s 8 '.*'; }|sort
# ou son équivalent directement avec apropos
{ apropos -s 1 -w '*'; apropos -s 8 -w '*'; } |sort



Ben voilà, ce que je surligne en bleu, c'est exactement la liste de tous ces "trucs' et leur signification qui m'intéresse.
Bien sûr, je trouve ça au fur et à mesure de mes recherches amis côté 'pratique', je préférerais un tableau ... si ça existe.

_________________
.
"L'action est plus efficace que la polémique, mais plus rare." Ricardo (1936-20..)
http://rictux.fr


Haut
 Profil  
 
MessagePosté: 13 Juil 2011 11:35 
En ligne
Contributeur
Avatar de l’utilisateur

Inscription: 18 Juil 2007 16:57
Messages: 8364
Localisation: Grenoble
Moi je fais un man puis un /-u (par exemple) pour trouver l'option que je cherche.

Tu as des visualisateurs de pages man graphiques aussi si tu veut.
Des représentation en tableau je n'en ai jamais vu.

_________________
Je suis Pitta, cartésien, irritable, irritant et névrosé (de plus je fais de l'entrisme pour zsh), si l'un de mes messages vous insupporte essayez d'y voir de l'ironie ou de ne pas en tenir compte. Bonne journée et gardez le sourire. :)


Haut
 Profil  
 
MessagePosté: 13 Juil 2011 13:46 
Hors ligne
Très bavard(e)!

Inscription: 29 Juil 2009 18:11
Messages: 294
@ricardo : oui, c'est bien ce que je craignais..
j'ai commencé à regarder pour générer ce "tableau" à partir des manpages
il y a 1 souci : le paragraphe consacré à la cette description d'options ne s'intitule pas de la même façon suivant les manpages :017
- parfois, cette liste d'options est renseignée dans la partie SYNOPSIS
- parfois, la partie OPTIONS est une sous entrée de ARGUMENT
- parfois, il s'agit bien d'un paragraphe OPTIONS indépendant
- parfois, ce paragraphe se trouve dans la partie DESCRIPTION
- etc...

ce n'est donc pas évident de ressortir cette liste :013

Sans compter que cela dépend de la langue utilisée (les locales entre autres)


Dernière édition par Totor le 13 Juil 2011 15:11, édité 1 fois.

Haut
 Profil  
 
MessagePosté: 13 Juil 2011 15:08 
Hors ligne
Administrateur du forum
Avatar de l’utilisateur

Inscription: 15 Oct 2004 00:13
Messages: 23173
Localisation: Père.Igor (24)
Merci de votre aide, laissez tomber car c'est en somme très secondaire et en cas de besoin, je fouillerai et c'est tout.
Au fur et à mesure, je me ferai mon propre tableau et ça ira comme ça.
Merci encore.

EDIT :
@ MisterFreez
comment fais-tu concrètement ?
Code:
Moi je fais un man puis un /-u (par exemple) pour trouver l'option que je cherche.

_________________
.
"L'action est plus efficace que la polémique, mais plus rare." Ricardo (1936-20..)
http://rictux.fr


Haut
 Profil  
 
MessagePosté: 13 Juil 2011 15:19 
Hors ligne
Très bavard(e)!

Inscription: 29 Juil 2009 18:11
Messages: 294
l'editeur par défaut des manpages est vi.
donc pour rechercher un texte, on procède de la même façon que sous vi ...
c.a.d : on tape /<texte à rechercher> et le tour est joué

par contre, parfois, il faut échapper des caractères (mettre un \ avant). Pour exemple : [ et ]

edit : pour se déplacer dans les occurences trouvées :
n : occurence suivante
N : occurence précédante


Haut
 Profil  
 
MessagePosté: 13 Juil 2011 15:53 
En ligne
Contributeur
Avatar de l’utilisateur

Inscription: 18 Juil 2007 16:57
Messages: 8364
Localisation: Grenoble
Totor a écrit:
l'editeur par défaut des manpages est vi.

En fait c'est le pager si je ne me trompe pas donc généralement less (en tout cas moi j'utilise less), qui a la même fonction de recherche que vi.

Je n'ai pas essayé avec more, mais ça marche avec less et most (évidement ça marche aussi avec view).

C'est de la recherche de mot dans la page donc ce n'est pas limité aux options.

_________________
Je suis Pitta, cartésien, irritable, irritant et névrosé (de plus je fais de l'entrisme pour zsh), si l'un de mes messages vous insupporte essayez d'y voir de l'ironie ou de ne pas en tenir compte. Bonne journée et gardez le sourire. :)


Haut
 Profil  
 
MessagePosté: 13 Juil 2011 16:10 
Hors ligne
Administrateur du forum
Avatar de l’utilisateur

Inscription: 15 Oct 2004 00:13
Messages: 23173
Localisation: Père.Igor (24)
Oui, mais au départ, il faut bien savoir ce qu'on recherche ?
Il faut entrer quoi ?
$ man bash ???
"concrètement", deux choses :
1/ savoir à quoi correspond une option qu'on lit sur une ligne, ex ton texte du dessus :
"man -k -s" : que veut dire -k, que veut dire -s ?
Je ne te demande pas la réponse mais la ligne complète pour la trouver.
2/ je veux connaître l'option qui me permettra de demander une réponse à un 'read', par exemple, le '-p' un des rares dont je me souviens.
Que fais-je comment faire une recherche :
"M'sieur, s'il vous plait, comment je fais pour que mon script attende une réponse 'read'"
Si je tape ça, y m'envoie chier, pourtant, chui poli :-?
Alors quelle ligne va-t-il comprendre ?
Pardonne moi si je suis buté mais pour que je comprenne, il faut toujours qu'on me donne un exemple concret, l'âge, certainement :roll:

_________________
.
"L'action est plus efficace que la polémique, mais plus rare." Ricardo (1936-20..)
http://rictux.fr


Haut
 Profil  
 
MessagePosté: 13 Juil 2011 16:41 
Hors ligne
Contributeur
Avatar de l’utilisateur

Inscription: 09 Jan 2009 11:55
Messages: 5035
Localisation: assis sur un caisson de basse à clavioter
En générale c'est assez souvent j'utilise soit la page de manuel que j'épluche de fond en comble avec "most" et de belles couleur :083

Sinon en gtk il y a tkman, http://packages.debian.org/fr/sid/man-browser, et apparemment konqueror peut aussi le faire ( reste à installer toute la documentation.

Et en dernier lieu sur la toile les pages de manuel sont accessible par exemple :

http://pwet.fr/man/linux/

http://man.developpez.com/
http://www.linux-france.org/article/man-fr/man1/Index-1.html
http://unixhelp.ed.ac.uk/

En générale toute les options sont documentés et parfois nous amène à des occurrences dans d'autres commandes.

_________________
Can you pass the ACID test ?
--------------------------------------------------
Mieux vaut le vin d'ici que l'eau de là.


Haut
 Profil  
 
MessagePosté: 13 Juil 2011 18:21 
Hors ligne
Administrateur du forum
Avatar de l’utilisateur

Inscription: 15 Oct 2004 00:13
Messages: 23173
Localisation: Père.Igor (24)
Merci, j'épluche ça ce soir ou demain.

_________________
.
"L'action est plus efficace que la polémique, mais plus rare." Ricardo (1936-20..)
http://rictux.fr


Haut
 Profil  
 
MessagePosté: 13 Juil 2011 22:42 
En ligne
Contributeur
Avatar de l’utilisateur

Inscription: 18 Juil 2007 16:57
Messages: 8364
Localisation: Grenoble
ricardo a écrit:
Oui, mais au départ, il faut bien savoir ce qu'on recherche ?
Il faut entrer quoi ?
$ man bash ???

Là tu ne parle pas des options mais des commandes, tu veut savoir quel commande utiliser pour faire tel ou tel chose. Pour ça j'avais commencé à faire ça : http://wiki.debian.org/fr/CommandsCLI

ricardo a écrit:
"concrètement", deux choses :
1/ savoir à quoi correspond une option qu'on lit sur une ligne, ex ton texte du dessus :
"man -k -s" : que veut dire -k, que veut dire -s ?
Je ne te demande pas la réponse mais la ligne complète pour la trouver.

Code:
man man

si man t'envoie une erreur il est possible que ce soit une commande builtin, c'est à dire que c'est une commande interne au shell pour le vérifier :
Code:
which echo

et si c'est le cas
Code:
man bash

puis tu recherche la commande avec
Code:
/echo


ricardo a écrit:
2/ je veux connaître l'option qui me permettra de demander une réponse à un 'read', par exemple, le '-p' un des rares dont je me souviens.
Que fais-je comment faire une recherche :
"M'sieur, s'il vous plait, comment je fais pour que mon script attende une réponse 'read'"
Si je tape ça, y m'envoie chier, pourtant, chui poli :-?
Alors quelle ligne va-t-il comprendre ?
Pardonne moi si je suis buté mais pour que je comprenne, il faut toujours qu'on me donne un exemple concret, l'âge, certainement :roll:

Alors j'ai pas de shell sous la main donc je te le fais au souvenir.
Code:
man read

te donne une erreur. En effet quand tu fais un
Code:
which read
il te dis que c'est une fonction "builtin" donc tu peux faire un
Code:
man bash
et rechercher les occurrences de du mot "read"
Code:
/read
et utiliser n ou N pour aller d'une occurrence à l'autre.

Là où je ne suis pas sûr c'est qu'il existe peut être une commande qui s'appelle dans ce cas le
Code:
man read
fonctionneras, mais si je ne me trompe pas c'est la fonction builtin qui est utilisée en priorité.

_________________
Je suis Pitta, cartésien, irritable, irritant et névrosé (de plus je fais de l'entrisme pour zsh), si l'un de mes messages vous insupporte essayez d'y voir de l'ironie ou de ne pas en tenir compte. Bonne journée et gardez le sourire. :)


Haut
 Profil  
 
MessagePosté: 13 Juil 2011 23:27 
Hors ligne
Administrateur du forum
Avatar de l’utilisateur

Inscription: 15 Oct 2004 00:13
Messages: 23173
Localisation: Père.Igor (24)
Merci Michel, impec, là j'ai fait un grand pas pour les recherches.
Je vais aller faire un tour sur le wiki.
:006

_________________
.
"L'action est plus efficace que la polémique, mais plus rare." Ricardo (1936-20..)
http://rictux.fr


Haut
 Profil  
 
MessagePosté: 13 Juil 2011 23:52 
Hors ligne
Administrateur du forum
Avatar de l’utilisateur

Inscription: 15 Oct 2004 00:13
Messages: 23173
Localisation: Père.Igor (24)
Clochette a écrit:
En générale c'est assez souvent j'utilise soit la page de manuel que j'épluche de fond en comble avec "most" et de belles couleur :083

Sinon en gtk il y a tkman, http://packages.debian.org/fr/sid/man-browser, et apparemment konqueror peut aussi le faire ( reste à installer toute la documentation.

Et en dernier lieu sur la toile les pages de manuel sont accessible par exemple :

http://pwet.fr/man/linux/

http://man.developpez.com/
http://www.linux-france.org/article/man-fr/man1/Index-1.html
http://unixhelp.ed.ac.uk/

En générale toute les options sont documentés et parfois nous amène à des occurrences dans d'autres commandes.


Développer.com et Linux-France : pratiques ==> dans la boîte, merci :006

_________________
.
"L'action est plus efficace que la polémique, mais plus rare." Ricardo (1936-20..)
http://rictux.fr


Haut
 Profil  
 
MessagePosté: 14 Juil 2011 00:51 
Hors ligne
Contributeur
Avatar de l’utilisateur

Inscription: 09 Jan 2009 11:55
Messages: 5035
Localisation: assis sur un caisson de basse à clavioter
ricardo a écrit:

Développer.com et Linux-France : pratiques ==> dans la boîte, merci :006


Moi j'ai une préférences pour http://pwet.fr/man/linux/ mais à vrai dire je m'efforce au maximum d'utiliser la doc fourni, c'est toujours très instructif :023

_________________
Can you pass the ACID test ?
--------------------------------------------------
Mieux vaut le vin d'ici que l'eau de là.


Haut
 Profil  
 
MessagePosté: 14 Juil 2011 15:43 
Hors ligne
Vraiment, particulièrement bavard(e)!
Avatar de l’utilisateur

Inscription: 28 Juil 2008 13:57
Messages: 1937
Localisation: Seine et Marne
MisterFreez a écrit:
si man t'envoie une erreur il est possible que ce soit une commande builtin, c'est à dire que c'est une commande interne au shell pour le vérifier :
Code:
which echo

et si c'est le cas
Code:
man bash

puis tu recherche la commande avec
Code:
/echo


Pour les commandes « builtin » de bash, tu peux aussi utiliser help :
Code:
$ help help
help: help [-dms] [motif ...]
    Affiche des informations sur les commandes intégrées.
   
    Affiche de courts résumés des commandes intégrées.  Si MOTIF est
    spécifié, une aide détaillée de toutes les commandes correspondantes au MOTIF sont affichées,
    sinon la liste des sujets d'aide est affichée.
   
    Options :
      -d   afficher une courte description pour chaque sujet
      -m   afficher l'aide dans un format proche des pages de man(uel)
      -s   n'afficher qu'une courte aide pour chaque sujet correspondant au
       MOTIF
   
    Arguments :
      MOTIF   Motif spécifiant un sujet d'aide
   
    Code de retour :
    Renvoie le code de succès à moins que le MOTIF ne soit pas trouvé ou qu'une option non valable ne soit donnée.

_________________
La propriété intellectuelle n'a d'intérêt que lorsqu'elle porte mal son nom.


Haut
 Profil  
 
MessagePosté: 14 Juil 2011 16:04 
Hors ligne
Administrateur du forum
Avatar de l’utilisateur

Inscription: 15 Oct 2004 00:13
Messages: 23173
Localisation: Père.Igor (24)
Merci du complément d'info.
Pour continuer dans le sens du titre :
1/ faut-il "terminer" un script, quelle commande, si plusieurs ?
2/ l'extension '.sh' du titre du script (sans parler du sha-bang) = "impératif" ou seulement "préférable" ?

_________________
.
"L'action est plus efficace que la polémique, mais plus rare." Ricardo (1936-20..)
http://rictux.fr


Haut
 Profil  
 
MessagePosté: 14 Juil 2011 16:26 
En ligne
Contributeur
Avatar de l’utilisateur

Inscription: 18 Juil 2007 16:57
Messages: 8364
Localisation: Grenoble
ricardo a écrit:
Merci du complément d'info.
Pour continuer dans le sens du titre :
1/ faut-il "terminer" un script, quelle commande, si plusieurs ?

Code:
exit

Tu lui donne en paramètre un entier supérieur à 0 si tu veut notifier d'une erreur.

ricardo a écrit:
2/ l'extension '.sh' du titre du script (sans parler du sha-bang) = "impératif" ou seulement "préférable" ?

Pas impératif, quand un script arrive dans mon $HOME/.bin je vire l'extension.

_________________
Je suis Pitta, cartésien, irritable, irritant et névrosé (de plus je fais de l'entrisme pour zsh), si l'un de mes messages vous insupporte essayez d'y voir de l'ironie ou de ne pas en tenir compte. Bonne journée et gardez le sourire. :)


Haut
 Profil  
 
MessagePosté: 14 Juil 2011 17:07 
Hors ligne
Administrateur du forum
Avatar de l’utilisateur

Inscription: 15 Oct 2004 00:13
Messages: 23173
Localisation: Père.Igor (24)
C'est ce que je pensais faire aussi par praticité.
J'ai un ~/bin "sans point", je vois que tu l'as caché, c'est préférable ? (je suis seul)
Autre chose : quel droits donnes-tu à ce dossier ~/.bin ?

_________________
.
"L'action est plus efficace que la polémique, mais plus rare." Ricardo (1936-20..)
http://rictux.fr


Haut
 Profil  
 
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 26 messages ]  Aller à la page 1, 2  Suivante

Index du forum » Divers » Programmation


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages
Vous ne pouvez pas joindre des fichiers

Aller à:  
Flux RSS Flux RSS Liste des flux Liste des flux
Powered by phpBB® Forum Software © phpBB Group
Traduction par: phpBB-fr.com
SEO
[ Time : 0.383s | 14 Queries | GZIP : Off ]