
我在 KDE Plasma 5 桌面環境中使用 Dolphin。在這裡,我編寫了一個 bash 腳本,當我從 Dolphin 拖曳一個文件並將其放在帶有圖標的“.desktop”定義的腳本上時,它可以精確地詳細說明一個文件,然後執行例如/home/user/scripts/list_all_drags.sh %f
.
這適用於這樣一個文件。現在我想將多個選定的文件從 Dolphin 拖曳到腳本中,並且腳本應該為每個文件條目詳細說明其過程。儘管我%F
用於多個文件而不是%f
單一文件,但這不起作用。
發生的情況是,打開了多個終端機窗口,每個窗口對應一個文件條目。我需要的是在一個腳本中執行的程式碼,對於刪除的每個文件條目,無需打開多個終端窗口,而是打開第一個終端窗口。確切地說,是「循環」啟動或使用刪除的檔案執行命令,而無需再按任何按鍵。
我不知道如何處理%F
腳本中的參數值。
答案1
我想,我已經找到了正確的答案,特別是如何用 %F 處理多個參數。
首先,我在文件管理器中選擇我的條目(文件)。其次,我將所有這些標記的檔案拖曳到我的腳本圖示上,並將它們放在該圖示上。在這個使用「/home/user/scripts/myscript.sh %F」執行的腳本中,有一個例程,它詳細說明了所有選定的檔案條目。
雖然我不確定可以批量選擇和詳細說明多少個參數(文件),但這裡的例程可以幫助我計算所有大於 0 的單一參數(這是我選擇的、我標記的文件):
while (( $# > 0 )) # or [ $# -gt 0 ] do echo "$1" shift done
我可以說而不是“echo $1”
file = $1
然後呼叫我使用 $file 的子例程
特別感謝這篇文章: 如何在 shell 中處理超過 10 個參數