![如何通过在 bash 脚本中拖放来详细说明多个选定文件](https://linux22.com/image/112646/%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87%E5%9C%A8%20bash%20%E8%84%9A%E6%9C%AC%E4%B8%AD%E6%8B%96%E6%94%BE%E6%9D%A5%E8%AF%A6%E7%BB%86%E8%AF%B4%E6%98%8E%E5%A4%9A%E4%B8%AA%E9%80%89%E5%AE%9A%E6%96%87%E4%BB%B6.png)
我在 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 个参数