Le 29/05/2018 à 13:05, Marc TERRIER a écrit :
> Bonjour,
>
> $? est une variable shell qui te renseigne sur l'exécution de la dernière commande que tu as lancée (en général, 0 signifie que tout s'est bien passé, et une valeur non nulle signifie qu'il y a eu un souci).
>
> Pour l'utiliser, tu fais tout simplement 'echo $?' (sans les guillemets), mais attention, tu ne peux l'utiliser qu'une seule fois après chaque commande. Par exemple, si tu fais :
>
> ls -l
> echo $?
> echo $?
>
> le premier 'echo $?' va te renseigner sur le fonctionnement de la commande précédente (ici 'ls -l'), alors que le second 'echo $?' va te renseigner non pas sur le fonctionnement de 'ls -l' mais sur celui du premier 'echo $?'.
ok tout compris
merci
je ne vais pas pouvoir utiliser dans mon script
----
smartctl -t short $DEV_NAME1 > /root/msg-smart1
# il faut attendre que smartctl s'exécute
sleep 180
----
smartctl tourne en tache de fond et rend la main dès le lancement de la
commande.
J'ai fait la commande sleep pour 3 minutes à cause de cela.
la commande echo $? va me donner le résultat de sleep et si je la fais
avant la commande sleep, smart n'aura pas fini
J'ai essayé en ligne de commande
----
# smartctl -t short /dev/sdc
smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.9.0-6-amd64] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke,
www.smartmontools.org
=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
Sending command: "Execute SMART Short self-test routine immediately in
off-line mode".
Drive command "Execute SMART Short self-test routine immediately in
off-line mode" successful.
Testing has begun.
Please wait 1 minutes for test to complete.
Test will complete after Tue May 29 13:54:05 2018
Use smartctl -X to abort test.
# echo $?
0
----
Anne