Ok, jadi berlari gedit myfile.txt
berfungsi dengan baik. Tapi bagaimana dengan membuka file dari dalam skrip bash, menggunakan aplikasi desktop default yang terhubung dengan tipe file?
Saya sudah mencoba di bawah ini, yang bekerja sangat baik ketika dijalankan secara manual di terminal, tetapi ketika saya meletakkannya di file bash, tidak ada yang terjadi:
#!/bin/bash
xdg-open "myfile.txt"&
Apa yang harus saya lakukan?
Harap dicatat bahwa saya perlu file tetap terbuka setelah terminal ditutup juga.
gedit
dengan file yang terdaftar (atau membuka tab baru di sesi yang ada). Itu kembali segera, daripada memblokir sampai program keluar.xtg-open
pada*.txt
,*.html
dan banyak lagi - hanya wont work.Jawaban:
Saya pikir skrip Anda harus berfungsi. Tetapi Anda dapat menambahkan sesuatu untuk mendapatkan informasi lebih lanjut:
saat menjalankan skrip ini (bernama my_open.sh) di terminal seperti ini:
Saya mendapatkan output berikut:
yang memberitahu saya bahwa path ke file tersebut ok, mimetype dikenali dan desktopfile yang digunakan untuk membuka file juga ok. Dan gedit terbuka dengan file yang dimaksud.
Sekarang ketika dijalankan pada file lain:
Saya mendapatkan output berikut:
Perhatikan mimetype yang berbeda dan file desktop yang hilang. Namun demikian, xdg-open membuka default untuk semua file teks (gedit).
Jadi, Anda mungkin ingin menambahkan sesuatu seperti ini ke skrip Anda dan melihat apakah Anda mendapatkan hasil yang tidak terduga (yang kemudian dapat Anda tambahkan ke pertanyaan Anda ...).
sumber
finished script
pada akhirnya. Saya merekomendasikan [ catb.org/~esr/writings/taoup/html/ [ ( Seni Pemrograman Unix), aturan keheningan. Btw.: Backticks sudah usang - lebih suka $ (...) sebagai gantinya, yang nestable.nohup
atau&
, tetapi ituxdg-open
kembali dan memungkinkan Anda melanjutkan.xdg-open
sudah ada, jadi ini bukan skrip kualitas produksi ...Jadikan bash script test.sh sebagai:
Kemudian, buat skrip tersebut dapat dieksekusi sebagai:
Terakhir, jalankan skrip sebagai:
sumber
Mungkin gnome-open bukannya xdg-open
sumber
Anda pergi ke arah yang benar. Jika Anda ingin aplikasi gui tetap terbuka ketika Anda menutup jendela terminal maka Anda hanya perlu menambahkannya
nohup
di awal baris.Jika aplikasi gui tidak membuka, mungkin karena Anda tidak memiliki
DISPLAY
variabel lingkungan yang ditetapkan di shell yang Anda coba jalankan. Coba lakukan gema$DISPLAY
sumber
nohup
atau&
Bagian pertama dari pertanyaan Anda
dengan perintah
cat
Anda dapat membuka file di dalam terminal, jika itu yang Anda inginkan (dinyatakan di bagian pertama pertanyaan Anda).untuk menggunakannya Anda cukup mengetik
cat FILENAME
.Informasi lainnya
Jika Anda memerlukan lebih banyak perintah: Ini daftar Perintah yang bagus.
Editor default GNOME
Jika Anda ingin membuka file di aplikasi default GNOME
gedit
.untuk menggunakannya, cukup ketik
gedit FILENAME
sumber
gedit file.filetype
Anda akan membuka file seperti yang Anda inginkan!Meskipun saya tidak yakin apa yang benar-benar harus dicapai di sini & berdasarkan pada beberapa komentar baru-baru ini bahwa satu skrip harus membuka file APA SAJA dalam aplikasi default atau sejauh mana aplikasi mendukung ini.
Jika demikian maka cara termudah untuk melakukannya adalah dengan membuka terminal & akan scriptname / path / ke / nama file atau jika ada spasi di path maka scriptname '/ path / ke / nama file'
Gunakan ini sebagai skrip, Anda dapat menggunakan nama yang Anda inginkan untuk skrip, saya akan menggunakan openit1 sebagai contoh. Cara terbaik adalah menggunakan skrip langsung dari ~ / bin untuk menambahkan nomor ke nama sehingga tidak ada konflik dengan perintah linux yang ada
Tutup gedit & di terminal
Mulai ulang untuk menambahkan ~ / nampan ke $ PATH Anda
Untuk memohon buka terminal dan pergi
JIKA seperti yang dinyatakan & gunakan orig. skrip untuk satu file tertentu per skrip & dijalankan oleh d. klik kiri pada skrip Anda hanya perlu memilih " Jalankan " daripada "Jalankan di Terminal"
sumber
Restart to add ~/bin to your $PATH
- uhm, kebiasaan Windows lama? ;)