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 :

[SSH] Appel de commande AWK dans un Bash en SSH


Sujet :

Shell et commandes GNU

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 664
    Par défaut
    • il manque des espaces autour de =~.
    • pourquoi SYNOPSIS (qui devrait être en minuscule) n'est-il pas dans usage() ?
    • plutôt que echo -e, pour un affichage formaté, utilise printf
    • vérifier le format d'une adresse mail est illusoire. tout ce qu'on peut dire avec certitude c'est qu'il doit y avoir un @. dans ta regex, _ n'est pas pris en compte, ni µ...
    • les fonctions ont une commande return pour retourner (!) le code d'erreur indiqué (0=<code=<255; zéro indiquant un succès, sinon cela indique un échec), et c'est ce code d'erreur qui doit être testé.
    • personnellement, je préfère test à [...], mais si tu testes les codes d'erreur de tes fonctions tu n'en /.auras plus besoin.
    • le printf de bash dispose d'un format horaire, qui rend date quasiment inutile.
    • bien sûr, cat | grep, ligne 132, est inacceptable, et il manque un espace avant le crochet fermant.



    j'en ai peut-être oublié.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  2. #22
    Membre émérite Avatar de balkany
    Homme Profil pro
    Touriste
    Inscrit en
    Juillet 2017
    Messages
    348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Touriste

    Informations forums :
    Inscription : Juillet 2017
    Messages : 348
    Par défaut
    Pourquoi introduire la fonction f_estFichier(), ne fait-elle pas que redéfinir test -f ?
    Pourquoi utiliser le fichier temporaire /tmp/tempo.txt ?
    Il manque quelques guillemets doubles, ou bien ils sont en trop :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    f_estFichier $fichier -> f_estFichier "$fichier"
    f_estEmail $email -> f_estEmail "$email"
    "bulletinDeSanteLe-"$madate".txt" -> "bulletinDeSanteLe-$madate.txt"

  3. #23
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 103
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    • les fonctions ont une commande return pour retourner (!) le code d'erreur indiqué (0=<code=<255; zéro indiquant un succès, sinon cela indique un échec), et c'est ce code d'erreur qui doit être testé.
    Citation Envoyé par balkany Voir le message
    Pourquoi introduire la fonction f_estFichier(), ne fait-elle pas que redéfinir test -f ?
    Outre l'une des remarques de N_BaH et celles de balkany, il semblerait que ta version de la fonction f_estFichier ne teste pas son argument, mais le contenu de la variable $fichier, même si elle devait être appelée avec un autre argument dans le script. C'est un bug sans conséquence dans le cas présent, mais qui pourrait en avoir dans un autre contexte et qui ne serait pas forcément facile à comprendre!

    Bref, on pourrait devoir remplacer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    f_estFichier()
    {
    	local retour=0
     
    	if [[ -f $fichier ]] 
    	then
    		retour=1
    	fi
    	echo "$retour"
    }
     
    elif [ $(f_estFichier $fichier) -eq 0 ]
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    f_estFichier() { test -f "$1"; }
     
    elif f_estFichier "$fichier"
    Et on voit que le gain de la fonction est passablement minime...

Discussions similaires

  1. Appels de commandes DOS dans sqlplus
    Par daniel7 dans le forum Sql*Plus
    Réponses: 2
    Dernier message: 17/11/2008, 18h48
  2. Appeller des commandes unix dans du PL/SQL
    Par stepd dans le forum PL/SQL
    Réponses: 2
    Dernier message: 08/03/2008, 14h52
  3. Appeler une commande nommée dans une variable
    Par kwakanar dans le forum Programmation (La)TeX avancée
    Réponses: 1
    Dernier message: 03/03/2008, 15h29
  4. commande awk dans script perl
    Par sorilazer dans le forum Langage
    Réponses: 3
    Dernier message: 19/07/2007, 10h16
  5. Réponses: 1
    Dernier message: 14/03/2007, 15h56

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