为什么我无法通过“fuseiso”从该 .desktop 文件挂载 ISO 文件?

为什么我无法通过“fuseiso”从该 .desktop 文件挂载 ISO 文件?

我想通过 来挂载没有 root 权限的 iso 文件fuseiso,以下是挂载 iso 文件的方法:

fuseiso -p '/path/to/isofilename' '/media/isofilename'

,所以我创建了一个 .desktop 文件,然后Freedesktop 标准版 (Exec 键)如下:

#!/usr/bin/env xdg-open

[Desktop Entry]
Name=Mount ISO image
Name[zh_TW]=掛載光碟映像檔
Exec=fuseiso -p %U "/media/$(basename %U)"
Terminal=false
MimeType=application/x-cd-image

,但失败了。

我认为它失败的原因是$(basename %U),如果将其更改为固定字符串,则可以挂载 iso 文件。

我怎么解决这个问题?

答案1

一个非常简单的修复方法是:

制作一个自定义脚本并在桌面文件内使其变为:

/home/kevin/Documents/Scripts/orWherever/myCustomScript.sh %U(或者您的自定义脚本的路径;不要忘记使其可执行)

在你的自定义脚本中调用

#!/bin/bash
fuseiso -p $1 "/media/$(basename $1)"

编辑:

解释为什么它不能按照您尝试的方式工作:

为了$(command here)获取命令的输出basename,它是一件bash事情,默认情况下它并不是在所有地方都起作用。该Exec字段需要一个可执行文件,并且可以(可选)向其传递参数。事实上,%U 不是唯一得到支持的东西。这就是为什么在 bash 脚本中可以工作的东西在这种情况下并不总是可以工作的原因。

相关内容