linuxshell 脚本执行的过程是怎样的?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linuxshell 脚本执行的过程是怎样的?相关的知识,希望对你有一定的参考价值。

Linux下可以有两种方式执行Shell脚本:

1、用shell程序执行脚本:根据shell脚本的类型,选择shell程序,常用的有sh,bash,tcsh等(一般来说第一行#!/bin/bash里面指明了shell类型的,比如#!/bin/bash指明是bash,#!/bin/sh则是sh);然后输入命令(其中bash为shell的名称,myshell.sh则为要执行的代码):

bash myshell.sh

2、直接执行脚本:

不过首先的加上可执行权限(也许要root权限,4情况而定),执行:

chmod +x myshell.sh

然后执行:

./myshell.sh

就可以执行了。
参考技术A asp可能用的是mdb数据库也可能是mssql数据库,你看看有没有mdb为后缀的文件,没有的话,看看有没有conn.asp这个文件。里面是数据连接方式d 参考技术B shell的执行过程:首先,脚本是从上至下从左至右执行每一行的语句的。
其次,当执行脚本时会进入一个新的shell,也成为nologin shell,在该shell下执行完成后,再返回执行前的shell。更加详细的讲解请楼主参考鸟哥linux网站中的bash shell章节有图能让您更容易理解,网址如下http://linux.vbird.org/,希望能帮到你。如果网站不能登录也可以下载一个《鸟哥的linux私房菜 基础篇》本回答被提问者采纳

关于 Linux shell 上的脚本执行权限

【中文标题】关于 Linux shell 上的脚本执行权限【英文标题】:About script execution permissions on Linux shell 【发布时间】:2021-11-16 05:28:11 【问题描述】:

事情是这样的:

我刚刚创建了一个脚本,比如说“helloworld.sh”。 脚本还没有执行权限:-rw-rw-r-- 话虽如此,如果我尝试使用以下命令执行该脚本:“./helloword.sh”,我将收到一条错误消息,正如预期的那样。 但是,如果我尝试执行与“.helloword”相同的脚本,它将毫无问题地执行。

所以,我的问题是,如何?为什么会这样?

【问题讨论】:

【参考方案1】:

这是因为在 Linux 上的“.” (dot) 单独是一个内置命令,可在当前会话中使用当前 shell 执行脚本。这与使用 source 命令(BSD 默认方法)调用脚本相同。这几乎与使用bash helloworld.sh 执行相同。

当你用./helloworld.sh/root/helloworld.sh 调用脚本时,shell 会尝试找出如何执行它,如果文件是二进制文件,它会简单地运行,如果是脚本,shell 会读取寻找解释器的第一行。为此,您需要执行权限。

为了简化:

一个是命令; 另一个是路径。

你甚至可以运行:

. --help

关于.bash

这就是我们使用 .source 从会话中的文件加载变量的原因,例如,当我们更改 ~/.bashrc 并重新加载它而无需再次登录。

您可以在执行时看到这种情况:

. /etc/os-release

此文件中定义的所有变量都将被加载并在您当前的 shell 会话中可用。

如果你执行,同样的情况不会发生:

bash /etc/os-release

因为您在调用的 bash 中打开了一个“新会话”,所以新的 bash 会执行并关闭,从而清理会话。

如果您将执行权限+x 授予脚本,则会发生相同的过程,因为当您使用./ 或类似名称调用脚本时,也会创建一个新会话。

【讨论】:

以上是关于linuxshell 脚本执行的过程是怎样的?的主要内容,如果未能解决你的问题,请参考以下文章

Linux shell脚本流程控制

linux shell脚本,怎样变量传递执行结果

Linuxshell脚本基础

Linuxshell脚本之if条件判断

linux shell脚本执行命令详解

linuxshell 多线程运行-脚本执行率优化篇