业界动态
方法 1:通过将文件作为参数传递给 shell 以运行 shell 脚本
2023-09-12 09:26

在 Linux 中有两种运行 shell 脚本的方法。你可以使用:

 

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

 

这可能很简单,但没太多解释。不要担心,我将使用示例来进行必要的解释,以便你能理解为什么在运行一个 shell 脚本时要使用给定的特定语法格式。

我将使用这一行 shell 脚本来使需要解释的事情变地尽可能简单:

 
 

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

考虑到 bash 是默认 shell,你可以像这样运行一个脚本:

 

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

如果你还不熟悉,我建议你 。

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

在这种方法中,你要明确地具体指定你想使用 bash 作为脚本的解释器

shell 只是一个程序,并且 bash 只是 Shell 的一种实现。还有其它的 shell 程序,像 ksh 、zsh等等。如果你安装有其它的 shell ,你也可以使用它们来代替 bash 。

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

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

因此,你首先需要确保你的脚本有可执行权限。你可以 使用 chmod 命令来给予你自己脚本的这种权限,像这样:

 

使你的脚本是可执行之后,你只需输入文件的名称及其绝对路径或相对路径。大多数情况下,你都在同一个目录中,因此你可以像这样使用它:

 

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

在脚本前的这个 是非常重要的(当你与脚本在同一个目录中)。

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

这里是我的系统的 环境变量的值:

 

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

Linux 命令(像 、等)的二进制文件或可执行文件都位于这些目录中的其中一个。这就是为什么你可以在你系统的任何位置通过使用命令的名称来运作这些命令的原因。看看,命令就是位于目录中。

当你使用脚本而不具体指定其绝对路径或相对路径时,系统将不能在 环境变量中找到提及的脚本。

为什么大多数 shell 脚本在其头部包含 #! /bin/bash ?

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

当你使用 时,你是具体指定 bash 作为解释器来运行脚本。如果你不这样做,并且以的方式运行一个脚本,它通常会在你正在运行的 shell 中运行。

有问题吗?可能会有。看看,大多数的 shell 语法是大多数种类的 shell 中通用的,但是有一些语法可能会有所不同。

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

使用 来标识该脚本是 bash 脚本,并且应该使用 bash 作为脚本的解释器来运行,而不受在系统上正在使用的 shell 的影响。如果你使用 zsh 的特殊语法,你可以通过在脚本的第一行添加的方式来标识其是 zsh 脚本。

在 和之间的空格是没有影响的。你也可以使用。

我希望这篇文章能够增加你的 Linux 知识。如果你还有问题或建议,请留下评论。

专家用户可能依然会挑出我遗漏的东西。但这种初级题材的问题是,要找到信息的平衡点,避免细节过多或过少,并不容易。

如果你对学习 bash 脚本感兴趣,在我们专注于系统管理的网站 Linux Handbook上,我们有一个完整的 Bash 初学者系列。如果你想要,你也可以购买带有附加练习的电子书,以支持 Linux Handbook。

    以上就是本篇文章【方法 1:通过将文件作为参数传递给 shell 以运行 shell 脚本】的全部内容了,欢迎阅览 ! 文章地址:http://www78564.xrbh.cn/news/2769.html 
     文章      相关文章      动态      同类文章      热门文章      栏目首页      网站地图      返回首页 迅博思语移动站 http://www78564.xrbh.cn/mobile/ , 查看更多   
最新文章
压力给到曼联!纽卡报价升级至9000万欧元,狂砸22岁莱比锡射手
纽卡斯尔对自己购买新射手的态度是十分坚定的,在此之前他们报价塞斯科被莱比锡婉拒之后,纽卡又进行了新一轮次的报价,他们将自
霜白色谷歌 Pixel 10 标准版手机渲染图再曝
IT之家 8 月 5 日消息,在分享 Pixel 10 Pro 手机渲染图之后,科技媒体 Android Headline 昨日(8 月 4 日)还分享了一组共 8 张
生娃能领7笔钱 年内险企举牌21次 《731》将于9月18日上映 官方通报“女司机亮证逼迫让路事件”
特别关注生娃能领7笔钱国家近日出台新政策,8月下旬将发放总额900亿的育儿补贴,2022年1月1日后出生的婴幼儿家庭可申领,每年360
西藏拉萨餐饮特色表演激发消费活力
8月4日,西藏拉萨一餐饮店,服务人员现场表演。近年来,随着一批涵盖了零售、餐饮、休闲娱乐等各大领域的品牌首店在拉萨开业,为
到“鹅乡”送“鹅”,中国美院师生再赴林口结对文化
潮新闻客户端八月的林口,英雄故里墨韵流芳,产业新篇白鹅振翅。中国美术学院书法学院的师生延续去年与黑龙江省林口县的约定,再
农发行沛县支行成功召开企业文化宣贯会
为深入贯彻中国农业发展银行企业文化理念,增强全员凝聚力和向心力,近日,农发行沛县支行组织召开企业文化宣贯会,支行领导班子
创意征集令来啦!诚邀您建言献策!
“十五五”时期,是绍兴基本实现高水平现代化、迈向“万亿俱乐部”的关键时期。为深入贯彻落实习近平总书记关于开门编规划的重要
都体:穆阿尼正在和其他不在巴黎计划内的球员一起训练
北京时间8月5日,据《都灵体育报》报道,正在与其他不在巴黎计划内的球员一同训练,巴黎与尤文之间已经接近达成最终协议,交易将
龙腾街道:文旅商贸“双轮驱动”绘就高质量发展新画卷
渔船停泊在金色的海面上珠港新城商圈东海岸美景商贸大厦鳞次栉比龙腾辖区内高楼林立,环境优美位于津湾公园的艺术雕塑作品龙腾街
HDPE中石油大庆5300B
HDPE中石油大庆5300BHDPE是一种结晶度高、非极性的热塑性树脂。原态HDPE的外表呈乳白色,在微薄截面呈一定程度的半透明状。PE具