Saya datang ke sini ingin mengetahui cara membuat skrip menelurkan terminal dan menjalankannya sendiri di dalamnya, jadi bagi mereka yang ingin melakukannya, saya menemukan solusi ini:
if [ ! -t 0 ]; then # script is executed outside the terminal?
# execute the script inside a terminal window with same arguments
x-terminal-emulator -e "$0" "[email protected]"
# and abort running the rest of it
exit 0
fi
Berikut adalah contoh sederhana untuk Anda mulai:
Untuk menulis skrip shell, lakukan ini pada prompt perintah Anda:
echo -e '#!/bin/sh\n echo "hello world"' > abc.sh
Ini menulis:
#!/bin/sh
echo "hello world"
Ke file bernama abc.sh
Selanjutnya, Anda ingin menyetelnya agar dapat dieksekusi dengan:
chmod +x abc.sh
Sekarang, Anda dapat menjalankannya dengan:
./abc.sh
Dan Anda akan melihat:
hello world
Di terminal Anda.
Untuk menjalankannya di terminal baru, Anda dapat melakukan:
gnome-terminal -x ./abc.sh
atau, jika xterm
:
xterm -e ./abc.sh
Berikut daftar berbagai emulator terminal.
Alternatifnya, Anda hanya menjalankannya di terminal Anda saat ini, tetapi melatarbelakanginya dengan:
./abc.sh &
Untuk gnome coba ini.
Ganti ls dengan perintah yang ingin Anda jalankan
gnome-terminal -x sh -c "ls|less"
Saya harap ini yang Anda inginkan
Mulai Januari 2020, -e
dan -x
opsi di gnome-terminal
masih berjalan dengan baik tetapi membuang peringatan berikut:
Untuk -e
:
# Opsi “-e” tidak digunakan lagi dan mungkin dihapus di versi terminal gnome yang lebih baru.
# Gunakan “-- ” untuk mengakhiri opsi dan letakkan baris perintah untuk dijalankan setelahnya.
Untuk -x
:
# Opsi “-x” tidak digunakan lagi dan mungkin dihapus di versi terminal gnome yang lebih baru.
# Gunakan “-- ” untuk mengakhiri opsi dan letakkan baris perintah untuk dijalankan setelahnya.
Berdasarkan informasi di atas, saya mengonfirmasi bahwa Anda dapat menjalankan dua perintah berikut tanpa menerima pesan peringatan apa pun:
gnome-terminal -- /bin/sh -c '<your command>'
gnome-terminal -- ./<your script>.sh
Saya harap ini membantu orang lain yang sedang mengalami masalah ini :)