Esegui un comando in un terminale, quindi al termine lascia il comando nel terminale


0

Ho un problema in cui devo avviare un comando da un terminale e lasciare il terminale aperto con il comando che ho usato una volta completato. Il motivo è che, a seconda di determinate circostanze, potrebbe essere necessario eseguirlo di nuovo.

Ho scritto uno script bash per eseguire diversi comandi del terminale in questo modo

$ launch.bash /path/to/data

E lo snippet sembra

xterm -hold -geometry 200x20+2+700 -e "python /home/me/doSomething.py --directory $1; echo python /home/me/doSomething.py --directory $1; bash"

Ciò che farà ora è che avvierà lo script Python e quando sarà completato stamperà il comando che ho usato. Sarebbe bello stampare il comando nella stessa riga di comando, quindi posso premere invio. C'è un modo per fare questo?

Risposte:


4

Reinserire il comando dalla riga di comando non è una cosa facile da fare (senza emulare una tastiera nel software, non conosco altro modo). Quello che puoi fare è rieseguire il comando quando premi Invio:

while true
do
    xterm -hold -geometry 200x20+2+700 -e "python /home/me/doSomething.py --directory $1; echo python /home/me/doSomething.py --directory $1"
    echo "Press enter to run the command again or CTRL+C to cancel"
    read
done

Oppure puoi semplicemente premere per tornare all'ultimo comando eseguito e premere invio.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.