1

我正在尝试执行一个为参数获取文件名的 shell 脚本。

如果我去终端并输入完整的路径,我可以做到。

但我试图让这对用户更加友好,所以我想做的是从文件管理器或 nautilus 发送参数(完整路径)。

可能吗?

4

2 回答 2

3

有可能的。这是一种方法:

将您的脚本复制到该文件夹~/.local/share/nautilus/scripts/​​ - 请注意,此路径将扩展以包含当前用户信息,例如:/home/john/.local/share/nautilus/scripts/.

现在,在您的脚本上,使用$1. 例如,假设您的脚本旨在删除文件,那么您的脚本可能是这样的:

#!/bin/bash
rm -f "$1"
exit

现在,重新启动Nautilus并导航到要对其执行操作的文件。右键单击该文件,然后在出现的菜单上选择“脚本”,然后在出现的 sumenu 上选择您的脚本名称——这将使用文件名作为参数执行您的脚本。

注意:不要忘记首先使您的脚本可执行,例如:chmod +x /home/john/.local/share/nautilus/scripts/myScript

于 2017-01-07T02:35:14.540 回答
2

好的,我将分享一种我发现可行的方法。

我所做的只是将路径作为参数传递,而不是在命令行上键入它。使其用户友好。

所以我使用了一个zenity工具,文件选择,浏览文件管理器并选择文件。

./script.sh $(zenity --file-selection)

看,现在我正在传递我选择的文件的路径。

如果你想试试这个,只需在命令行中输入。

zenity --file-selection
于 2017-01-07T04:27:17.933 回答