什么是通用shell脚本的示例,它将在终端中正确运行,但不是双击时?

我真的很想了解一些脚本可以从命令行运行但不是双击时的基本原因。

是否有一个脚本的例子可以做一些简单的事情,比如回显一个变量或类似的东西,它可以在命令行中重现,但是双击时却无法工作?

要清楚,我的意思是它应该在两个实例中运行,但是当双击时它应该无法正确执行其任务,并且它应该在任何最近的Ubuntu安装上执行此操作。 我希望通过能够重现我能理解的行为并在将来自己修复它。

最简单的例子:

  • 创建一个文件“test”并放入

    #!/bin/bash echo "Hello World!" 

    在里面

  • 使用chmod 700 test使其可执行
  • 在命令行上执行./test并输出

     Hello world! 

来自Nautilus:

  • 默认:双击,它将作为文本文件打开
  • 当从Nautilus首选项设置为“运行文本文件”时,它会闪烁几次然后什么都不做。

但这是预期的行为。 对于Nautilus,你需要创建一个脚本,用“Hello world!”文本“弹出”。 在里面。

例:

 #!/usr/bin/python import os os.system('zenity --info --text="Hello world!!"') 

会显示……

在此处输入图像描述

顺便说一下:当你有一个桌面时,这也可以从命令行运行。 在tty上它会显示错误“无法连接到Mir”。

并在将来自己修复它

我怀疑有什么可以解决的。 在命令行执行并在Nautilus中执行是两回事。