GNU/Linux >> Belajar Linux >  >> Linux

Jalankan skrip shell di terminal baru dari terminal saat ini

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 :)


Linux
  1. Cara Membuat Script Shell Selalu Jalankan Sebagai Root?

  2. Dari Mana Skrip Shell Dijalankan?

  3. Regenerasi .bashrc Dari Shell Saat Ini?

  1. Menjalankan skrip shell secara paralel

  2. Direktori skrip Shell saat ini?

  3. Jalankan skrip yang disalurkan dari stdin (Linux/Shell Scripting)

  1. Cara menjalankan skrip Python dari shell

  2. Cara menjalankan skrip shell saat startup

  3. Jalankan skrip shell sebagai pengguna yang berbeda