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

Résolu/Fermé
Signaler
-
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
-
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

7 réponses

Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 891
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.

;-))
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
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 891
Ah ok, ben là désolé je ne vois pas du tout ;-((
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 562
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:~#

Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 891
Oui j'avais compris, mais en sh ou ksh, quoi que lui il veut le numéro de la ligne qui lance la commande...
Oui c'est bien ca que je veux, mais pas en perl en sh ou ksh.
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 562
Re,
#!/bin/sh
TEXT="toto"
echo "$LINENO $TEXT"
exit 0
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 891
T'es le meilleur, merci ;-))
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 562 >
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020

Mais, non, seulement têtu ;-))
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 891 >
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019

C'est pas un truc de perlien ça , ;-\

;-))
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 562 >
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020

L'orgueil, la paresse et l'impatience ;-))
merci beaucoup a vous tous, ça marche. Nickel. ;-)

Pour info c'est la lettre O et non le chiffre 0 pour la commande $LINENO
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 562
c'était un test pour voir si tu suis ;-))
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
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 562
Salut,

c'est à lui d'adapter ;-)