我在 KDE Plasma 5 桌面环境中使用 Dolphin。我在这里编写了一个 bash 脚本,当我将文件从 Dolphin 拖放到带有图标的“.desktop”定义脚本上时,该脚本可以精确地处理一个文件,然后执行例如/home/user/scripts/list_all_drags.sh %f
。
%F
这种方法适用于单个文件。现在我想将 Dolphin 中选定的几个文件拖到脚本中,脚本应该针对每个文件条目详细说明其流程。虽然我将其用于多个文件而不是%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 个参数