
Я использую Dolphin в среде рабочего стола KDE Plasma 5. Здесь я написал скрипт 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
Особая благодарность за этот пост: Как обрабатывать более 10 параметров в оболочке