Dengan peluncur untuk aplikasi terminal, bagaimana saya bisa menjaga terminal tetap terbuka setelah program selesai?

24

Saya memiliki perintah terminal yang saya jalankan dari peluncur aplikasi. Ini berfungsi dengan baik, namun kadang-kadang perintah gagal, jadi saya ingin terminal tetap terbuka sehingga saya bisa melihat hasilnya. Bagaimana saya bisa melakukan ini?

Eugene M
sumber

Jawaban:

23

Dengan asumsi perintah Anda dipanggil mycommand, saya akan mengubah peluncur saya untuk menjalankan ini:

gnome-terminal -e "mycommand|less"

Jika Anda menginginkan solusi yang lebih permanen, mungkin lebih bersih, buka terminal gnome, buka Edit, Preferensi profil dan klik tab Judul dan Perintah. Ubah opsi "Ketika perintah keluar" ke "Tahan terminal terbuka".

Ketika Anda menjalankan perintah, terminal itu seharusnya sekarang terbuka ketika sesuatu berjalan.

Sunting: Jika Anda tidak terlalu peduli dengan terminal, Anda bisa menggunakan flag hold xterm:

xterm -e "mycommand" hold
Oli
sumber
7
Untuk menjaga terminal default 'ketika tindakan keluar', saya sarankan untuk membuat profil terminal baru, atur agar tetap terbuka setelah perintah keluar, dan berikan --tab-with-profile=PROFILENAMEopsi terminal gnome-terminal . Anda dapat memiliki banyak profil untuk bahaviours yang berbeda dengan cara ini :-)
terbalik
1
xterm -hold -e mycommand
8

Peluncur Anda menjalankan skrip, bukan?

Di akhir skrip Anda tambahkan

read -p "Press any key to exit > " -n1 junk
echo 

Maka skrip Anda akan menunggu hingga Anda memilih untuk mengakhirinya.

Richard Holloway
sumber
1
+1, dan untuk menampilkan prompt hanya jika perintah gagal (mengembalikan kode keluar non-nol) yang bisa dilakukancommand || read -n1 -p "Command failed. Press any key to exit..."
Jukka Matilainen
8

Di pintasan .desktop Anda, gunakan ini

Exec=gnome-terminal -x bash -c "YOUR_SCRIPT; exec $SHELL"

Setelah skrip Anda selesai, proses Bash akan menggantikan dirinya dengan doa baru sendiri.

Jika Anda harus memberikan argumen yang dikutip ke skrip Anda, Anda harus menghindari kutip:

Exec=gnome-terminal -x bash -c "YOUR_SCRIPT \"arg with spaces\"; exec $SHELL"
mivk
sumber
3

Pendekatan yang sedikit berbeda dari jawaban lain: jalankan perintah Anda dan jika itu gagal, maka ciptakan shell. Dengan cara ini Anda tidak perlu menahan terminal terbuka (yang tidak membedakan antara keberhasilan atau kegagalan perintah), dan Anda mungkin menemukan shell yang sangat berguna dalam kegagalan. Untuk menutupnya, cukup gunakan Ctrl-D (EOF), "keluar", Alt-F4 (atau apa pun yang digunakan manajer jendela Anda untuk menutup windows), dll.

sukses-atau-shell

#!/bin/sh
[ $# -eq 0 ] && {
  echo "$(basename $0): no command" >&2
  exit 1
}
"$@" || {
  echo "failed: $?"
  exec $SHELL
}

Tempatkan file ini di suatu tempat, seperti ~ / bin, lalu gunakan "sukses-atau-shell perintah asli Anda" di peluncur Anda.


sumber
0

Jawaban ini memberikan jawaban terbaik yang pernah saya lihat sejauh ini untuk melakukan apa yang Anda inginkan. Mereka merekomendasikan membuat skrip dengan perintah untuk mengeksekusi dan menggunakannya dengan parameter --init-file (spesifik bash, tetapi Anda mungkin bisa melakukan hal yang sama untuk csh / tcsh / zsh, dll):

#!/bin/bash --init-file
commands to run

... dan jalankan sebagai:

xterm -e /path/to/script
# or
gnome-terminal -e /path/to/script
# or
the-terminal -e bash --init-file /path/to/script/with/no/shebang
Brian Vandenberg
sumber
0

Gunakan watchperintah.

Format:, watch -n60 myCommandatauwatch -n60 "my command string"

  • yang -nditentukan jumlah detik untuk menunggu antara panggilan ke mycommand ; mis: perintah di atas akan memanggil perintah saya setiap 60 detik, selamanya.
  • Jika perintah ini beberapa kata, memasukkannya tanda kutip dalam ganda: "my command string".

Katakanlah Anda menginginkan Peluncur yang menampilkan penggunaan disk, dan tetap terbuka agar pembaca dapat melihatnya. Saya cukup menggunakan perintah ini di dalam Peluncur:,
watch -n60 "df -h"yang memanggil df -hsekarang setiap 60 detik.

Saya suka ini karena jawaban yang diterima gnome-terminal -e "mycommand|less"karena saya menjalankan Xubuntu, yang menggunakan terminal berbeda secara default.

Gabriel Staples
sumber
0

Coba klik kanan peluncur dan masukkan properti.

Seharusnya ada opsi untuk menjaga jendela terminal tetap terbuka masukkan deskripsi gambar di sini

Dalam file .desktop, harus ada entri X-KeepTerminal=true

nathanfranke
sumber