Bagaimana saya bisa memulai aplikasi saya dengan cara yang lebih nyaman?

9

Saya baru di Ubuntu. Saya memiliki aplikasi yang saya buka dengan cara berikut. Saya mengetikkan konsol:

cd ~/MyDirectory
./myapp +some arguments

Bagaimana saya bisa menemukan solusi, sehingga saya bisa meluncurkan aplikasi saya tanpa mengetik perintah ini di konsol setiap saat? Saya sedang memikirkan sebuah skrip, seperti skrip kelelawar atau .lnk di windows.

Dalam pertanyaan serupa lainnya saya tidak menemukan solusi karena hanya ada beberapa penyebutan dan diskusi tentang scripting. Saya tidak menemukan bagaimana saya dapat menggunakan perintah "cd" dalam pertanyaan lain, dan pertanyaan ini bukan duplikat dari yang lain yang saya sarankan.

nick
sumber
@steeldriver, tidak, saya tidak menemukan solusi untuk pertanyaan ini. tidak ada apa-apa tentang perintah cd dan menjalankan aplikasi melalui skrip.
nick
# 1 Apakah Anda ingin solusi menjadi ikon yang dapat Anda klik pada desktop Anda, atau akankah ini sesuatu yang Anda perlukan / ingin jalankan dari command prompt? # 2 Seberapa sering argumen akan berubah?
RonJohn
Percakapan (aman dalam kasus ini) mengasumsikan ada desktop. Cukup sering di dunia scripting tidak akan ada.
mckenzm

Jawaban:

21

Sebuah skrip cukup berlebihan.

Gunakan file .desktop seperti:

[Desktop Entry]
Exec=/bin/bash -c "cd ~/MyDirectory && myapp some_arguments"
Name=Some App
Type=Application
  • Simpan sebagai some_app.desktop
  • Buat itu dapat dieksekusi dan klik dua kali

NB

Pertanyaannya adalah apakah perlu dijalankan dari direktori sendiri atau tidak. Jika tidak, perintahnya bahkan bisa lebih sederhana:

Exec='/home/MyUserName/MyDirectory/myapp' some_arguments
Yakub Vlijm
sumber
2
Terima kasih sekali. .desktopfile sudah cukup untuk tugas ini.
nick
2
@allo Jika OP meminta solusi, yang bukan yang optimal untuk masalahnya, tetapi dia tidak menyadari ada yang lebih baik, Anda harus memberinya solusi yang lebih baik untuk masalahnya jika Anda tahu. Jika Anda tidak melihat bahwa Anda benar-benar kehilangan poin tentang apa jawaban yang seharusnya ada di sini.
Jacob Vlijm
1
@derima kasih atas hasil editnya. Kita mungkin harus berurusan dengan jalur dengan spasi :)
Jacob Vlijm
1
Anda mungkin ingin menulis ./myapp …bukan hanya myapp …karena direktori saat ini .,, secara default bukan bagian dari variabel PATH.
PerlDuck
1
@allo Jangan ragu untuk menambahkan jawaban Anda sendiri jika menurut Anda jawaban yang ada tidak cukup.
Fabby
13

Buat file dengan konten berikut:

#!/bin/bash
cd ~/MyDirectory
./myapp +some arguments

Kemudian buat itu bisa dieksekusi:

chmod u+x scriptname

Sekarang Anda dapat memanggil skrip ini seperti ini: /pathtoscript/scriptname

Anda dapat menggabungkan ini dengan jawaban oleh v010dya, dan meletakkan skrip ini di semua binyang ada di $ PATH, sehingga kedua metode panggilan dimungkinkan: di shell di semua tipe direktori scriptnameatau gunakan pintasan desktop yang dijelaskan di bawah ini. Ubah saja /pathtoscriptpenempatan script yang sebenarnya.

Buat pintasan ke skrip, letakkan di dalam ~/.local/share/applications/dan beri nama seperti somename.desktop dengan konten berikut:

[Desktop Entry]
Version=1.0
Name=Script
Comment=
Keywords=Script
Exec=/pathtoscript/scriptname
Terminal=false
X-MultipleArgs=true
Type=Application
Icon=preferences-system
Categories=GTK;Development;
StartupNotify=false

Maka akan muncul dalam daftar aplikasi

LeonidMew
sumber
1
Jawaban Anda berhasil, terima kasih. Tapi sungguh minta maaf, skrip terlalu sulit, saya tidak tahu tentang itu. Dan jawaban saya secara konkret dalam naskah tetapi tidak hanya dalam menemukan cara penyelesaian. Saya akan memberi +1 kepada Anda.
nick
1

Meskipun Anda telah menemukan solusi yang dapat Anda klik dua kali, ada solusi yang membuatnya lebih sepele untuk dijalankan dari baris perintah:

Langkah 1 - Tulis skrip

Ini sudah ditutupi oleh jawaban dari LeonidMew , saya akan menyalin sini:

#!/bin/bash
cd ~/MyDirectory
./myapp +some arguments

lalu

chmod u+x scriptname

Langkah 2 - Permudah untuk dieksekusi

Anda perlu membuat direktori ~/bindan membuat bash mencarinya untuk perintah. Jadi di terminal kita menulis:

mkdir ~/bin
mv scriptname ~/bin
vim ~/.profile

Di sini saya melakukan semua yang ada di terminal, tentu saja Anda dapat membuat direktori dirdi direktori home Anda dan juga memindahkan skrip Anda ke sana melalui alat grafis yang Anda sukai. Saya juga menggunakan vim sebagai editor, tetapi agak sulit bagi pemula untuk menggunakannya, saya akan menyarankan Anda untuk belajar, tetapi Anda bisa menggunakan editor yang berbeda (bahkan grafik) untuk mengedit .profiledi dalam direktori home Anda, perhatikan bahwa file ini disembunyikan secara default.

Anda perlu menambahkan yang berikut ke akhir file itu

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

Jika Anda menggunakan vim Anda menekan iuntuk mulai menambahkan teks, dan kemudian Escuntuk mengakhiri menambahkan. Setelah itu Anda input :wquntuk menulis file dan keluar. Atau, seperti yang telah saya katakan, gunakan editor yang lebih sederhana.

Langkah 3 - Nikmati

Sekarang, tidak masalah apa pun direktori Anda, Anda selalu bisa mengetik scriptnamedan menekan Enter. Anda juga dapat menempatkan skrip dan aplikasi lain yang ingin Anda jalankan ~/bin.

v010dya
sumber
1
Anda menulis cara keluar dari vim, +1 Bercanda, jawaban yang bagus. Solusi Anda bermanfaat. Masih memungkinkan untuk membuat file .desktop, untuk menjalankan skrip dari daftar aplikasi atau menu (tergantung pada DE). Setelah menambal .profile logout / login diperlukan. Home juga dapat dipasang dengan opsi noexec, dalam hal ini diperlukan untuk meletakkan skrip di / usr / local / bin / (menggunakan sudo).
LeonidMew