shell脚本执行命令语句 教你编写一个简单的shell脚本

在Linux中运行shell脚本有两种方式。您可以使用:bash script.sh或者,您可以像这样执行shell脚本:./script.sh可能很简单,但没有太多解释。别担心,我会用例子做必要的解释,这样你就能理解为什么在运行shell脚本时会使用给定的特定语法格式。我会用这行shell脚本让需要解释的...

在Linux中运行shell脚本有两种方式。您可以使用:

bash script.sh

或者,您可以像这样执行shell脚本:

./script.sh

可能很简单,但没有太多解释。别担心,我会用例子做必要的解释,这样你就能理解为什么在运行shell脚本时会使用给定的特定语法格式。

我会用这行shell脚本让需要解释的东西尽量简单:

abhishek@itsfoss:~/Scripts$ cat hello.shecho "Hello World!"

1:通过将文件作为参数传递给shell来运行shell脚本。

第一种方法是将脚本文件名作为参数传递给shell。

考虑到bash是默认shell,您可以运行如下脚本:

bash hello.sh

你知道这种方法的优点吗?您的脚本不需要执行权限。非常方便快捷的简单任务。

如果你不熟悉,建议你。

记住,将它作为参数传递的需要是一个shell脚本。shell脚本由命令组成。如果使用普通的文本文件,它会报错命令。

在这个方法中,您必须明确指定您希望使用bash作为脚本的解释器

Shell只是一个程序,bash只是shell的一个实现。还有其他的shell程序,比如ksh,zsh等等。如果您安装了其他shell,也可以使用它们来代替bash。

例如,我已经安装了zsh,并使用它来运行相同的脚本:

2:通过指定shell脚本的路径来执行脚本。

运行shell脚本的另一种方法是提供它的路径。但是在你这样做之前,你的文件必须是可执行的。否则,当您尝试执行该脚本时,将会出现“权限被拒绝”的错误。

因此,您首先需要确保您的脚本具有可执行权限。您可以使用chmod命令将此权限授予您自己的脚本,如下所示:

chmod u+x script.sh

在使您的脚本可执行后,您只需要输入文件名及其绝对路径或相对路径。大多数时候,你都在同一个目录下,所以你可以这样使用它:

./script.sh

如果与脚本不在同一个目录中,可以指定脚本的绝对路径或相对路径:

这个。/之前的脚本很重要(当你和脚本在同一个目录的时候)。

为什么在同一个目录下不能用脚本名?这是因为您的Linux系统会在PATH环境变量中指定的几个目录中查找可执行文件。

下面是我的系统的PATH环境变量的值:

abhishek@itsfoss:~$ echo $PATH/home/abhishek/.local/bin:/usr/local/***in:/usr/local/bin:/usr/***in:/usr/bin:/***in:/bin:/usr/games:/usr/local/games:/snap/bin

这意味着以下目录中具有可执行权限的任何文件都可以在系统中的任何位置运行:

/home/abhishek/.local/bin/usr/local/***in/usr/local/bin/usr/***in/usr/bin/***in/bin/usr/games/usr/local/games/snap/bin

Linux命令的二进制文件或可执行文件(如ls、cat等。)位于其中一个目录中。这就是为什么您可以通过使用它们的名称在系统中的任何地方运行这些命令。看,ls命令位于/usr/bin目录下。

当您在未指定绝对路径或相对路径的情况下使用脚本时,系统将无法在PATH环境变量中找到提到的脚本。

为什么大部分shell脚本都包含#!在他们的头上?/bin/bash?

我记得提过shell只是一个程序,shell程序有不同的实现。

当你使用#!/bin/bash,您特别指定bash作为运行脚本的解释器。如果你不这样做,并运行一个脚本。/script.sh,它通常会在您正在运行的shell中运行。

有什么问题吗?可能有。看,大多数shell语法对于大多数类型的shell都是通用的,但是有些语法可能是不同的。

例如,bash和zsh中数组的行为是不同的。在zsh中,数组索引从1开始,而不是从0开始。

用#!/bin/bash来标识该脚本是一个bash脚本,并且应该使用bash作为脚本的解释器来运行,而不管系统上使用的是什么shell。如果使用zsh的特殊语法,可以在脚本的第一行加上#!/bin/zsh将其标识为zsh脚本。

在#!/bin/bash之间的空格没有效果。也可以用#!/bin/bash .

有帮助吗?

希望这篇文章能增加你对Linux的了解。如果您还有问题或建议,请留下评论。

专家可能还是会挑出我漏掉的。但这个首要主题的问题是,不容易找到信息的平衡,避免过多或过少的细节。

如果您对学习bash脚本感兴趣,我们的网站Linux Handbook上有完整的Bash初学者系列,它侧重于系统管理。如果你愿意,还可以购买带有附加练习的电子书来支持Linux手册。

本文来自秦楚殇投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/620559.html

打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
() 0
上一篇 07-05
下一篇 07-05

相关推荐

  • 优美语句摘抄大全

    摘抄的优美语句 1春天的雨是柔和的,只见春雨在竹枝竹叶上跳动着那雨时而直线滑落,时而随风飘洒,留下如烟如雾如纱如丝的倩影,飞溅的雨花仿佛是琴铉上跳动的音符,奏出优美的旋律 2秋天的阳光,覆盖了春季的“温暖”;优美的句子摘抄 在日常学习工作和生活中,许多人都接触

    2023-07-27 00:47:01
    159 0
  • updateset多条数据 使用update语句修改表中数据

    摘要今天就简单介绍一下select语句的流程,update语句的执行过程以及涉及到的两阶段提交协议,仅供参考。Redlog(唯一重做日志(innodb引擎,它循环写入,空之间的间隔总会用完。比如配置一组4个文件,每个文件大小为4GB,可以记录总共4GB的操作)是物理日志,记录“某个数据页发

    2023-07-26 16:30:01
    235 0
  • sqlserver数据库还原语句 sql数据库备份和恢复步骤

    1。了解数据库备份和事务日志备份数据库备份和日志备份是数据库维护的日常工作。备份的目的是将数据库和事务日志文件还原到最近的时间点,以便在数据库出现故障或损坏时将损失降至最低。2。数据库备份[手动数据库备份]A.鼠标右键选择要备份的数据库-任务-备份。描述:完整完整

    2023-07-23 23:44:01
    541 0
  • 高级讽刺人虚伪的句子 讽刺人的经典语句,霸气毒辣

    第一,你有无数个备胎,感情不断,不是因为你有魅力,而是因为你便宜又百搭。第二,毕竟这不是一个***爱的社会。你最好克制一下。第三,脸是人体最神奇的部分。对有些人来说,可大可小,可厚可薄,甚至可有可无。第四,每个人出生时都是原始的。可悲的是,很多人逐渐成为了海

    2023-07-19 21:56:01
    1044 0

评论列表

联系我们

在线咨询: QQ交谈

邮件:admin@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信