KDE 服务菜单获取所选文件的列表

Dav*_*_sd 5 kde scripts kde5

我是 Gnome 用户,我正在尝试 KDE 5。当我使用 Nautilus (Gnome) 时,我有一堆 shell 脚本操作可以处理由变量 给出的选定文件路径列表$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS

阅读此答案后,我知道 Dolphin 操作提供了代码%F: A list of files. Use for apps that can open several local files at once. Each file is passed as a separate argument to the executable program

问题是每个文件都作为单独的参数传递给可执行程序,而我的脚本设计为与变量 $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS 一起使用。

理想情况下,我想重用我的旧脚本。是否可以转换 Dolphin%F列表并将其设置$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS为我的脚本的变量?

Kri*_*ves 3

您可以访问在 bash 中使用传递给脚本的所有参数$@,这意味着从技术上讲您可以创建一个包装器脚本,该脚本首先准备一个伪造的环境变量,如下所示:

 export NAUTILUS_SCRIPT_SELECTED_FILE_PATHS=$@
 ./real-script.sh
Run Code Online (Sandbox Code Playgroud)

当然,$@如果您想要代替原始的 nautilus 变量,您也可以简单地修改脚本来使用:

for var in "$@"
do
    echo "x" "$var"
done
Run Code Online (Sandbox Code Playgroud)

另请注意,在.desktopServiceMenus 文件中,您需要执行以下操作:

Exec=script %F
Run Code Online (Sandbox Code Playgroud)

请注意,%F它周围没有引号。