Saya yakin saya akan mendapatkan pantat saya diserahkan kepada saya untuk pertanyaan ini, tetapi saya sepertinya tidak bisa memahaminya. Saya baru mengenal bash scripting, jadi mudahkan saya ...
Saya ingin dapat menyeret dan melepaskan file ke aplikasi desktop, yang kemudian memanggil skrip bash yang akan memindahkan file itu ke lokasi yang ditentukan dalam skrip bash. Inilah yang telah sejauh ini.
Skrip bash
#! /bin/bash
mv $file /path/to/new/directory
Namun, saya tidak tahu bagaimana cara memasukkan $file
sebagai variabel ketika saya seret dan jatuhkan ke aplikasi desktop. Bagaimana saya bisa melakukan ini?
Alasan: Saya memiliki kertas yang perlu saya baca dalam satu folder, dan begitu saya membacanya, saya meletakkannya di folder lain. Saya pada dasarnya hanya ingin membuatnya mudah untuk melakukan ini.
Terima kasih, Paul
sumber
Jawaban:
Buat bash scriptfile dengan konten berikut:
Buat file .desktop dengan konten berikut:
Ubah PATH_TO_NEW_DIRECTORY dan PATH_TO_SCRIPT_FILE sesuai keinginan Anda.
Melakukan
chmod +x script_name
Seret file ke file .desktop.
Selesai !.
sumber
$file
alih-alih"$file"
(atau"${file}"
) bisa membuat Anda menghadapi banyak masalah.bash
sini;#!/bin/sh
sudah cukup untuk melakukan hal yang sama (walaupun mungkin terkait denganbash
banyak sistem).Tidak perlu skrip. Buat tautan ke PATH_TO_NEW_DIRECTORY di mana Anda membutuhkannya. Lalu seret file ke tautan
sumber
Apa yang dikatakan @ Slug45 sepenuhnya benar. Namun, tidak memiliki penjelasan.
Saat Anda menyeret dan menjatuhkan file ke file yang dapat dieksekusi (atau tautan ke yang), file yang dapat dieksekusi tersebut dijalankan dengan jalur ke file yang diseret sebagai argumen. Ini persis sama pada Windows (bukan itu benar-benar penting di sini).
Bash memiliki cara sederhana untuk berurusan dengan argumen. Gunakan
"$@"
(dengan tanda kutip) untuk mendapatkan array dari semua argumen (berguna misalnya dalam loop for..in).$@
,,"$*"
dan$*
lakukan hal serupa, tetapi Anda hampir selalu menginginkannya"$@"
. Lihat di sini untuk informasi lebih lanjut tentang spesifik.Selain itu, Anda dapat langsung mengakses arg tertentu karena
$X
X adalah nomor arg. Sebagai contoh:Dalam skrip besar, lebih baik untuk menetapkan mereka ke variabel bernama:
sumber