Je suis encore assez novice en matière de Linux, mais je suis encore plus novice en ce qui concerne les notions de SSH et de PUTTY. Après m'être connecté en SSH à une machine linux, je lance la commande suivante :
csh -c 'cd /; set echo off; set term=dumb; set echo on; pwd; csh -i'
Tout cela est bien beau, sauf les maux de tête causés par les interruptions de signal, comme Ctrl+C. J'ai fait des recherches et je suis arrivé aux conclusions suivantes :
-
En csh,
onintr -
peut être utilisé pour bloquer les signaux dans un script donné. Cela m'a fait penser à mettreonintr -
dans le fichier cshrc : De cette façon, elle serait exécutée à chaque fois que je lance la commande ci-dessus. Mais cette ligne n'est locale que pour un script, donc elle n'aurait pas de réel effet global comme je le voulais. -
J'ai découvert que bash, contrairement à csh, possède la commande trap - une commande nonscript spécifique qui redéfinira la façon dont certains signaux sont traités pendant toute la session du shell. commande. J'ai donc essayé de lancer bash à la place et de modifier le code pour l'adapter. En regardant les pages de manuel de bash, j'ai interprété que
bash -c
se comporte à peu près de la même manière quecsh -c
donc pour reproduire la commande ci-dessus, j'ai essayé de remplacercsh
conbash
et ajoutertrap "" 2
à la commande.
Par conséquent, la commande complète serait :
bash -c' cd /; set echo off; set term=dumb; set echo on; pwd; bash -i; trap "" 2'
Mais bash -c
ne se comporte pas nécessairement comme csh -c
du moins dans ce cas.
Je ne sais pas comment résoudre ce problème. Comment puis-je faire en sorte que l'interpréteur de commandes ignore Ctrl+C par défaut ? Dois-je mettre onintr -
dans cshrc ? Ou serait-il préférable d'utiliser bash et d'exécuter la commande trap ? Comment dois-je procéder pour mettre en œuvre la meilleure solution ?