Nautilus 或 PCManFM 有一个选项可以在执行文件之前询问您。
我可以在图纳尔 (Thunar) 得到它吗?
我发布此文是为了提供答案。
答案1
根据提供的 Zenity 脚本这个答案,
看到你已经zenity
安装
sudo apt-get install zenity
创建一个名为的可执行文件,editorrun.sh
内容如下:
#!/bin/bash
zenity --question --text="What to do with the executable file '$1'?" \
--ok-label=Run \
--cancel-label=Edit
case $? in
0)xfce4-terminal -e "bash $1"
;;
1)gedit $1
;;
esac
使其可执行,然后将其添加到应用程序列表中
gedit ~/.local/share/applications/edit-or-run.desktop
内容如下:
[Desktop Entry]
Type=Application
Name=Edit-or-run
Icon=gedit
Categories=Utility;
MimeType=application/x-sh;application/x-executable;
Exec=bash -c 'path/to/the/script/editorrun.sh %f'
在中添加脚本的路径Exec=bash -c 'path/to/the/script/editorrun.sh %f'
。然后,使其可执行。
然后,通过选择这样的文件,将此desktop
文件设置为可执行文件的默认应用程序,转到'礼节 - 一般 - 打开'并选择编辑或运行。
之后,当您单击可执行文件时,会出现一个对话框
(一个小问题:此时您无法关闭对话框:使用关闭窗口按钮,Esc或 Alt+F4等同于--cancel-label
脚本中的选项并将在文本编辑器中打开文件。)
编辑:关于“小故障”:为了避免通过这个 zenity 脚本打开文件进行编辑(并且考虑到“在文本编辑器中打开”是一个非常容易访问的选项),可以从脚本中删除文本编辑器并重新制定问题:
#!/bin/bash
zenity --question --text="Do you REALLY want to EXECUTE this file?" \
--ok-label=YES! \
--cancel-label=No...
case $? in
0)0)xfce4-terminal -e "bash $1"
;;
1)
;;
esac
结果如下:
其中“是”将执行脚本,而所有其他选项则不执行任何操作。