ubuntu sh 双击运行(centos运行sh文件)
ubuntu 运行.sh文件
运行.sh文件可以通过多种方式实现,理解每种方法有助于更灵活地处理脚本执行。以下是几种常用方法及其区别:
1.**使用 sh执行**
使用 `sh`命令执行.sh文件,如 `sh test.sh`,指示系统使用默认的 `sh` shell来运行脚本。此方法使用的是被bash替代的shell,尽管脚本可能声明使用 `#!/bin/bash`,实际执行仍依赖于默认的 `sh`环境。
2.**使用 bash执行**
使用 `bash`命令执行.sh文件,如 `bash test.sh`或 `dash test.sh`,明确指定使用bash shell执行脚本。bash为当前主流shell,支持更多功能和关键字,如 `let`。bash、dash在部分关键字处理上存在差异,bash提供更广泛的shell功能。
3.**使用点操作执行**
通过添加执行权限使用 `./`前缀执行.sh文件,如 `chmod+x test.sh`授予执行权限后,使用 `./test.sh`。这种方式默认使用 `bin/bash`执行,且执行过程中创建独立shell环境。与前两种方法不同,此方法在当前shell中运行脚本,不需要额外的环境。
4.**使用 source执行**
使用 `source test.sh`直接执行脚本,不创建新shell环境。这种方式在当前shell中运行脚本,且脚本内的操作在shell执行结束后仍然有效,适用于需要在当前shell环境中持久化设置的场景。
每种方法的执行原理及差异在于是否创建新shell环境,以及是否对当前shell环境产生持久影响。选择合适的方法取决于脚本执行需求和预期的shell环境行为。理解这些方法及其应用场景,有助于更高效地管理和执行.sh脚本。
ubuntu下source.sh.bash../执行脚本的区别详细介绍
ubuntu下source、sh、bash、./执行脚本的区别
1.source命令用法:
source FileName
作用:在当前bash环境下读取并执行FileName中的命令。该filename文件可以无"执行权限"
注:该命令通常用命令“.”来替代。
如:source.bash_profile
..bash_profile两者等效。
source(或点)命令通常用于重新执行刚修改的初始化文档。
source命令(从 C Shell而来)是bash shell的内置命令。
点命令,就是个点符号,(从Bourne Shell而来)。
source的程序主体是bash,脚本中的$0变量的值是bash,而且由于作用于当前bash环境,脚本中set的变量将直接起效
2 sh, bash的命令用法:
sh/bash FileName
作用:打开一个子shell来读取并执行FileName中命令。该filename文件可以无"执行权限"
注:运行一个shell脚本时会启动另一个命令解释器.
每个shell脚本有效地运行在父shell(parent shell)的一个子进程里.
这个父shell是指在一个控制终端或在一个xterm窗口中给你命令指示符的进程.
shell脚本也可以启动他自已的子进程.
这些子shell(即子进程)使脚本并行地,有效率地地同时运行脚本内的多个子任务.
在ubuntu中sh只是bash的一个链接。
由于是在子shell中执行,脚本设置的变量不会影响当前shell。
3、./的命令用法:
./FileName
作用:打开一个子shell来读取并执行FileName中命令。该filename文件需要"执行权限"
注:运行一个shell脚本时会启动另一个命令解释器.
每个shell脚本有效地运行在父shell(parent shell)的一个子进程里.
这个父shell是指在一个控制终端或在一个xterm窗口中给你命令指示符的进程.
shell脚本也可以启动他自已的子进程.
这些子shell(即子进程)使脚本并行地,有效率地地同时运行脚本内的多个子任务.
由于是在子shell中执行,脚本设置的变量不会影响当前shell。
如何在双击后运行shell脚本
当你双击一个脚本(.sh文件)的时候,你想要做的是什么?通常的想法是执行它。但是在Ubuntu下面却不是这样,或者我应该更确切地说是在Files(Nautilus)中。你可能会疯狂地大叫“运行文件,运行文件”,但是文件没有运行而是用Gedit打开了。
我知道你也许会说文件有可执行权限么?我会说是的。脚本有可执行权限但是当我双击它的时候,它还是用文本编辑器打开了。我不希望这样,如果你遇到了同样的问题,我想你也许也想要这样。
我知道你或许已经被建议在终端下面执行,我知道这个可行,但是这不是一个在GUI下不能运行的借口是么?
这篇教程中,我们会看到如何在双击后运行shell脚本。
修复在Ubuntu中shell脚本用文本编辑器打开的方式
shell脚本用文件编辑器打开的原因是Files(Ubuntu中的文件管理器)中的默认行为设置。在更早的版本中,它或许会询问你是否运行文件或者用编辑器打开。默认的行为在新的版本中被修改了。
要修复这个,进入文件管理器,并在菜单中点击选项:
接下来在文件选项中进入行为标签中,你会看到可执行的文本文件选项。
默认情况下,它被设置成“在打开时显示文本文件”。我建议你把它改成“每次询问”,这样你可以选择是执行还是编辑了,当然了你也可以选择“在打开时云可执行文本文件”。你可以自行选择。