Script sh
medalaa
Messages postés
8
Statut
Membre
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
svp j'ai un problemme dans mon script
lors de l'excution il me fait une erreur
l'erreur est:
ps: unknown option -- A
Try 'ps --help' for more information.
svp j'ai un problemme dans mon script
lors de l'excution il me fait une erreur
l'erreur est:
ps: unknown option -- A
Try 'ps --help' for more information.
#!/bin/sh
quitter="N"
#test sur la condition d'arret :
while [ $quitter = "N" ];
do
#l'utilisateur entre le nom du processus qu'il veut supprimer :
echo -n "Quel processus souhaitez-vous supprimer ? : ";
read processus_a_supprimer;
# La ligne de commande suivante permet de filtrer le résultat obtenu
# par " ps -fA " comme suit mettre le résultat dans PID :
# * grep "$USER" fait ressortir les ligne qui correspondent à l'utilisateur
# * grep "$processus_a_supprimer" prend les lignes qui correspondent au(x)
# processus qu'on veut supprimer
# * grep -v grep retir les la ligne de la commande grep car elle contien
# le nom d processus à supprimer
# * tr -s ' ' supprime tout les espaces multiples (elle ne laisse
# qu'un seul espace entre les champs)
# * cut -f 2 -d ' ' prend les PIDs de chaque ligne (les PIDs du(es)
# processus à supprimer)
PID='ps -fA | grep "$USER" | grep "$processus_a_supprimer" | grep -v grep | tr -s ' ' | cut -f 2 -d ' '' ;
if [ -z "$PID" ] # si le processus n'existe pas
then
echo "*******************************";
echo "Aucun processus ne porte ce nom";
echo "*******************************";
else
# Confirmer les supression du(es) processus :
echo -n "êtes-vous sûr de vouloir supprimer le processus $processus_a_supprimer (O/N): ";
read confirmer;
if [ $confirmer == "O" ]
then
#suppression du(es) processus :
kill $PID ;
fi
fi
echo -n "voulez-vous quitter ? (O/N):";read quitter;
done ;
2 réponses
-
D'après le message, ton erreur vient de cette ligne :
PID='ps -fA | grep "$USER" | grep "$processus_a_supprimer" | grep -v grep | tr -s ' ' | cut -f 2 -d ' '' ;
L'option -A (qui figure dansps -fA
) n'est pas supportée sur ce système. Ceci peut s'expliquer assez simplement : selon le système utilisé (macOS, linux, etc...) les options de la commandeps
ne correspondent pas toujours.
J'imagine que tu as récupéré le script de quelqu'un qui utilise un autre système d'exploitation.
Chez moi, d'aprèsman ps
, l'option -A correspond à :
-A Sélectionner tous les processus. Identique à -e.
Tu peux donc essayer dans un premier temps de remplacer cette ligne par :
PID='ps -fe | grep "$USER" | grep "$processus_a_supprimer" | grep -v grep | tr -s ' ' | cut -f 2 -d ' '' ;
Bonne chance -
salut,
un seulpkill
correctement paramétré (voir la page man) tuera le processus indésirable, au lieu de cette longue pipeline.
si tu veux conserver lePID
pour ensuite demander confirmation de la suppression du processus, utilise alorspgrep
.