我正在尝试执行一个为参数获取文件名的 shell 脚本。
如果我去终端并输入完整的路径,我可以做到。
但我试图让这对用户更加友好,所以我想做的是从文件管理器或 nautilus 发送参数(完整路径)。
可能吗?
有可能的。这是一种方法:
将您的脚本复制到该文件夹~/.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
好的,我将分享一种我发现可行的方法。
我所做的只是将路径作为参数传递,而不是在命令行上键入它。使其用户友好。
所以我使用了一个zenity工具,文件选择,浏览文件管理器并选择文件。
./script.sh $(zenity --file-selection)
看,现在我正在传递我选择的文件的路径。
如果你想试试这个,只需在命令行中输入。
zenity --file-selection