[sh] Numéro de la ligne en cours d'exécution

Résolu
abdelhdi -  
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   -
Bonjour,

Je travaille avec des batchs Unix [ksh, sh]. Je voudrais récupérer le numéro de la ligne en cours d'exécution afin de pourvoir l'imprimer sur la sortie standard.
Comme en C++, avec la commande __LINE__.

Merci par avance pour vos réponses

Abdelhdi
A voir également:

7 réponses

jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Salut,

Il faudrait voir déjà les outils employés dans tes scripts (style awk ou autres) qui sont capables d'afficher le numéro des lignes traitées, sinon voir du côté des utilitaires comme "cat -n" ou "nl" qui numérotent les fichiers lus en entrée et ensuite de récupérer le numéro de ligne avec les outils appropriés.

;-))
0
abdelhdi
 
Merci par ta réponse.

Je vais essayer de m'expliquer. J'ai un script.sh par exemple. Lorsque je fais echo , je voudrais avoir le numéro de la ligne où est situé le echo.

exemple:
#!/bin/sh
TEXT="toto"
echo "$TEXT"
exit 0

Je voudrais afficher en plus du texte de la variable $TEXT, la ligne qui a executé le echo soit ici la ligne 3
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Ah ok, ben là désolé je ne vois pas du tout ;-((
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

il parle de ça
#!/usr/bin/perl
use strict;use warnings;
print "ok\n";
print __LINE__,"\n";
__END__
Résultat
root@debian:~# perl ccm.pl
ok
4
root@debian:~#

0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Oui j'avais compris, mais en sh ou ksh, quoi que lui il veut le numéro de la ligne qui lance la commande...
0
abdelhdi
 
Oui c'est bien ca que je veux, mais pas en perl en sh ou ksh.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Re,
#!/bin/sh
TEXT="toto"
echo "$LINENO $TEXT"
exit 0
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
T'es le meilleur, merci ;-))
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570 > jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention  
 
Mais, non, seulement têtu ;-))
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896 > lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention  
 
C'est pas un truc de perlien ça , ;-\

;-))
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570 > jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention  
 
L'orgueil, la paresse et l'impatience ;-))
0
abdelhdi
 
merci beaucoup a vous tous, ça marche. Nickel. ;-)

Pour info c'est la lettre O et non le chiffre 0 pour la commande $LINENO
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
c'était un test pour voir si tu suis ;-))
0
abdelhdi
 
si on utilise cette commande dans une fonction alors le numéro de ligne affiché correspond au nombre de ligne depuis le début de la fonction et non du fichier
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

c'est à lui d'adapter ;-)
0