将文件名从 Nautilus 传递到 shell 脚本
Pass filename from Nautilus to shell script
我正在尝试执行一个 shell 脚本,该脚本获取一个文件名作为参数。
如果我去终端输入完整的 PATH,我就能做到。
但我正在努力使它更加用户友好,所以我想做的是从文件管理器或 nautilus 发送参数(完整路径)。
可能吗?
有可能。这是一种方法:
将您的脚本复制到文件夹 ~/.local/share/nautilus/scripts/
-- 请注意,此路径将扩展以包含当前用户信息,例如:/home/john/.local/share/nautilus/scripts/
.
现在,在您的脚本中,使用 </code> 捕获参数。例如,假设您的脚本旨在删除文件,那么您的脚本可能是这样的:</p>
<pre><code>#!/bin/bash
rm -f ""
exit
现在,重新启动 Nautilus
并导航到您要对其执行操作的文件。右键单击该文件,然后在出现的菜单上选择 "scripts",然后在出现的 sumenu 上选择您的脚本名称——这将以文件名作为参数执行您的脚本。
注意:不要忘记先让脚本可执行,例如:chmod +x /home/john/.local/share/nautilus/scripts/myScript
好的,我将分享我发现有效的方法。
我试图做的就是将路径作为参数传递,而不是在命令行中键入它。使它对用户友好。
所以我使用 zenity 工具文件 selection 来浏览文件管理器和 select 文件。
./script.sh $(zenity --file-selection)
看,现在我正在传递我 select编辑的文件的路径。
如果您想尝试一下,只需在命令行中输入即可。
zenity --file-selection
我正在尝试执行一个 shell 脚本,该脚本获取一个文件名作为参数。
如果我去终端输入完整的 PATH,我就能做到。
但我正在努力使它更加用户友好,所以我想做的是从文件管理器或 nautilus 发送参数(完整路径)。
可能吗?
有可能。这是一种方法:
将您的脚本复制到文件夹 ~/.local/share/nautilus/scripts/
-- 请注意,此路径将扩展以包含当前用户信息,例如:/home/john/.local/share/nautilus/scripts/
.
现在,在您的脚本中,使用 </code> 捕获参数。例如,假设您的脚本旨在删除文件,那么您的脚本可能是这样的:</p>
<pre><code>#!/bin/bash
rm -f ""
exit
现在,重新启动 Nautilus
并导航到您要对其执行操作的文件。右键单击该文件,然后在出现的菜单上选择 "scripts",然后在出现的 sumenu 上选择您的脚本名称——这将以文件名作为参数执行您的脚本。
注意:不要忘记先让脚本可执行,例如:chmod +x /home/john/.local/share/nautilus/scripts/myScript
好的,我将分享我发现有效的方法。
我试图做的就是将路径作为参数传递,而不是在命令行中键入它。使它对用户友好。
所以我使用 zenity 工具文件 selection 来浏览文件管理器和 select 文件。
./script.sh $(zenity --file-selection)
看,现在我正在传递我 select编辑的文件的路径。
如果您想尝试一下,只需在命令行中输入即可。
zenity --file-selection