如何在nemo_action中通过Zenity弹窗输出文件的SHA-256哈希值
问题原因
- Nemo Action的
Exec字段默认不解析Shell语法,你写的命令替换结构$(sha256sum %f)不会被执行,只会作为普通文本传递给Zenity,所以无法输出正确的哈希值。 - 要执行带Shell语法的命令,必须显式调用Shell进程(比如bash、sh)包裹整条指令。
正确配置写法
把你的Exec字段替换为以下内容即可:
Exec=bash -c 'zenity --info --title="Check SHA256 for $1" --text="$(sha256sum "$1")"' _ %f
写法说明
bash -c表示调用bash执行后续引号内的Shell命令- 末尾的
_是Shell的$0占位符,无实际作用,符合Shell传参规范 %f会被Nemo自动替换为选中文件的完整路径,作为$1参数传入内部的Shell命令,文件名带空格、特殊字符时也能正常处理- 内层对
$1加双引号是为了规避特殊字符导致的命令截断问题
你可以先把命令中的%f替换为本地实际存在的文件路径,在终端运行验证正常后再写入Nemo Action配置,保存后重启Nemo即可生效。
内容的提问来源于stack exchange,提问作者Goto10
相关产品推荐
相关产品推荐

