Lubuntu 16.04 - Sesi Openbox
Saya dapat menggunakan terminal untuk membuka file bertanda waktu dengan gedit
:
gedit ~/$(date +%Y%m%d%H%M%S).txt
Perintah juga dapat digunakan melalui pintasan keyboard di Openbox.
<keybind key="W-4"> # gedit time-stamped file
<action name="Execute"><command>sh -c 'gedit ~/$(date +%Y%m%d%H%M%S).txt'</command></action>
</keybind>
Tetapi saya tidak dapat melakukan hal yang sama melalui Exec=
baris .desktop
file.
Exec=sh -c 'gedit ~/$(date +%Y%m%d%H%M%S).txt'
hanya membuat file bernama ~/.txt
Jadi bagaimana cara mendapatkan file .desktop untuk melakukan apa yang saya inginkan?
$()
perintah sub-shell seperti itu. Saya pikir Anda memerlukannya untuk memanggil skrip lain yang berisi perintah sub-shell Anda untuk membuka file Anda.Exec=/bin/bash -c "echo $(date) > ~/out.txt"
berjalan dengan baik. yang+%Y%m%d%H%M%S
tampaknya menjadi masalah. masih mengunyahnya.Jawaban:
Sayangnya, file .desktop tidak selalu memanggil
$()
perintah sub-shell seperti yang kita inginkan. Salah satu cara untuk melakukan ini yang saya temukan adalah dengan membuat skrip lain yang berisi perintah sub-shell untuk membuka file seperti itu.The
Exec
garis akan terlihat seperti:maka file skrip Anda akan berisi perintah untuk membuka file baru Anda:
skrip juga harus dapat dieksekusi:
Semoga ini membantu!
sumber
cron
mana karakter tertentu (%
?) Perlu dihapus?sources.list
file apt Anda tidak dapat mengganti nama rilis dengan$(lsb_release -sc)
yang tidak berfungsi baik. Jika Anda mengetahuinya, saya ingin melihat bagaimana Anda melakukannya. :)+\%Y\%m\%d\%H\%M\%S
maka itu harus bekerjaMasalah
Sebuah skrip tidak diperlukan.
Masalahnya bukan karena
.desktop
file tidak dapat menjalankan perintah dengan subkulit, karenaberfungsi dengan baik dalam
.desktop
file.Mengotak-atik perintah, saya sampai pada kesimpulan bahwa
%
-character yang menyebabkan masalah. Saya tidak punya penjelasan untuk itu, dan sejauh ini saya tidak dapat menemukan informasi tentang bagaimana menyelesaikan atau menghindarinya.Karena itu saya pergi mencari perintah untuk mendapatkan waktu tanpa menggunakan karakter yang dicurigai.
Atau gunakan Ruby untuk tanggal & waktu
Ini menuntun saya ke
Ruby
, yang menghasilkan tanggal & waktu saat ini dari perintah:Ketika kita mengedit output sedikit
awk
, menghapus spasi dan pembatas, kita hanya memiliki apa yang kita inginkan, dan perintah yang berfungsi dalam.desktop
file, karena kita tidak menggunakan%
:Catatan!
Tidak diragukan lagi, perintahnya bisa "dipesona" sedikit, saya mungkin akan mengedit jawabannya sedikit hari ini atau besok.
sumber
.desktop
file seperti ini sebelumnya ...