如何通过在 bash 脚本中拖放来详细说明多个选定文件

如何通过在 bash 脚本中拖放来详细说明多个选定文件

我在 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 个参数

相关内容