Je suis un nouvel utilisateur Ubuntu / Linux, je voudrais poser une question comme mon titre ci-dessus.
Par exemple, j'ai un fichier bash ./script
, je voudrais le faire fonctionner automatiquement lorsque je tape une ligne de commande. Une fois que j'exécute la ligne de commande, pwd
le ./script
sera exécuté. Une fois que je tape la ligne de commande suivante, ls -la
le ./script
sera à nouveau exécuté.
command-line
bash
scripts
execute-command
Ender Phan
la source
la source
Réponses:
Vous devez définir une
PROMPT_COMMAND
variable. Deman bash
:Par exemple, cela écrira la date actuelle à
/tmp/PC
chaque fois qu'une commande est exécutée:la source
echo $(date)
sera exécutée au moment de la déclaration, elle sera donc toujours affichée (enregistrée) en même temps.Vous recherchez
PROMPT_COMMAND
une variable d'environnement, la valeur de cette variable sera exécutée en tant que commande, après l'exécution de chaque commande donnée dans le terminal, juste avant d'afficher l'invite suivante.Par exemple, définissez-le comme:
Faites d'abord le script
/path/to/script
, exécutable.Maintenant, le script sera exécuté après chaque commande.
Juste pour noter, si vous ne voulez pas que la variable soit exportée, c'est-à-dire en faire une variable shell au lieu d'une variable d'environnement, supprimez
export
:De
man bash
:la source
export
?export
fera de la variablePROMPT_COMMAND
une variable d'environnement, c'est-à-dire que la variable sera disponible pour tous les processus enfants (par exemple les sous-coquilles) du shell actuel. Si vous souhaitez simplement le confiner uniquement dans la session shell actuelle (variable shell), supprimezexport
.export
n'est pas une bonne pratique ici -PROMPT_COMMAND
ne doit être défini que dans un fichier de démarrage du shell interactif et ne doit pas être visible dans l'environnement