Pertanyaan Buat file .desktop yang membuka dan menjalankan perintah di terminal


Saya ingin tahu cara menulis Exec perintah file .desktop untuk membuka terminal baru dan menjalankan skrip shell di dalamnya. Skrip shell berfungsi dan dapat diakses oleh semua pengguna. Saat meluncurkan skrip dari terminal semuanya bekerja, tetapi tidak ketika mencoba meluncurkan skrip dari file .desktop.

Berikut beberapa kombinasi yang sudah saya coba:

Exec=gnome-terminal -x sh -c 'echo hello'
Exec=sh -c 'gnome-terminal echo hello'
Exec=sh -c 'echo hello'
Exec=echo hello

Opsi terminal .desktop diatur ke true.


31
2018-03-20 13:56


asal




Jawaban:


Konten dari file desktop Anda akan terlihat seperti (lihat cara membuat file .desktop menggunakan editor teks):

[Desktop Entry]
Version=1.0
Name=Test        
Comment=Test the terminal running a command inside it
Exec=gnome-terminal -e "bash -c 'echo hello;$SHELL'"
Icon=utilities-terminal
Terminal=false
Type=Application
Categories=Application;

Atau:

[Desktop Entry]
Version=1.0
Name=Test        
Comment=Test the terminal running a command inside it
Exec=bash -c 'echo hello;$SHELL'
Icon=utilities-terminal
Terminal=true 
Type=Application
Categories=Application;

Dalam kasus pertama, Terminal bidang diatur ke false (Mungkin bertentangan dengan harapan Anda) dan dalam kasus kedua diatur ke true, tetapi hasilnya dalam kedua kasus itu sama.


37
2018-03-20 19:11



Solusi pertama bekerja untuk saya, jadi saya tetap menggunakannya. Apakah Anda tahu mengapa harus ada $ SHELL? - Paradiesstaub
@Thibaut Ya, tentu saja. - Radu Rădeanu
Ini bekerja untuk saya, namun saya ingin meluncurkan perintah dengan sudo, kemudian ketika menggunakan peluncur membuatnya membuka terminal meminta saya untuk kata sandi. Bagaimana cara saya menjalankan perintah dan mencegah perilaku ini? - E_Angel
@EliasAlves Sedikit terlambat, tetapi bagi orang lain yang membaca ini: Anda tidak dapat mengharapkan untuk menjalankan perintah yang memerlukan hak akses root tanpa perlu mengotentikasi sendiri. (Kecuali Anda secara eksplisit mengkonfigurasi sistem Anda untuk melakukan itu, yang umumnya adalah a buruk ide.) - code_dredd
Saya pikir pertanyaannya adalah: bagaimana cara memastikan terminal muncul sehingga terminal tidak hilang sehingga kita dapat memasukkan kredensial - RockScience


!#/bin/bash

gnome-terminal -e YOUR_COMMANDS

Buat file di atas. Jangan lupa untuk sudo chmod +x filename.sh


2
2018-03-20 14:10



Masalah dengan solusi ini adalah, bahwa terminal menghilang segera dan pengguna tidak dapat memasukkan sesuatu. - Paradiesstaub
saya lupa apa namanya tapi saya pikir ada opsi untuk menjaga terminal. Mungkin hold - Mr.Lee


Saya melakukan ini. Baris pertama dari file teks adalah! # / Bin / bash

Baris selanjutnya dari file teks adalah perintah (skrip shell).

Simpan file sebagai something.sh

Buka properti file dan aktifkan menjalankan file sebagai program.

Sekarang, ketika file diklik dua kali, saya mendapatkan opsi untuk menjalankannya.


0
2018-03-20 14:05



Sama di sini, terminal menghilang dengan segera. - Paradiesstaub
Ia bekerja untuk saya tidak ada masalah. Buat skrip shell, tambahkan baris! # / Bin / bash sebagai baris pertama. Biarkan file dijalankan sebagai file yang dapat dieksekusi. Klik dua kali dan pilih run in terminal. Itu hanya berfungsi. - hatterman
Apakah Anda yakin terminal tidak hanya ditutup karena skrip shell telah selesai? Di awal skrip Anda, tidurlah 30, apakah terminal tetap buka selama 30 detik? - hatterman