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 脚本执行的过程是怎样的?的主要内容,如果未能解决你的问题,请参考以下文章