二、shell编程快速入门

目录

1、入门示例

2、解释器

3、shell脚本执行方式

3.1 方式一:sh执行脚本

3.2 方式二:工作目录执行

3.3 方式三:绝对路径执行

​​​​​​​4、shell的数据类型

4.1 字符串

4.2 整数型


1、入门示例

以下所有操作都在/export/shell目录下进行,请提前创建该目录:

mkdir -p /export/shell

新建 /export/shell/hello.sh 文件

#!/bin/bash

echo 'hello world'

#! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell。注意,在shell脚本中除了第一行的#表示特殊格式外,其他地方的#一般表示注释。

echo命令用于向窗口输出文本。

2、解释器

Java需要虚拟机解释器, 同理 shell脚本也需要解析器,查看Linux系统支持的解释器:

[root@node1 shell]#cat /etc/shells

/bin/sh

/bin/bash

/sbin/nologin

/bin/dash

/bin/tcsh

/bin/csh

常见Shell解释器:

sh 的全称是 Bourne shell,由 AT&T 公司的 Steve Bourne开发,为了纪念他,就用他的名字命名了。sh 是UNIX 上的标准 shell,很多 UNIX 版本都配有 sh。sh 是第一个流行的 Shell。

Bash:从名称可以看出是Bsh的升级版本,是著名的开源软件项目,目前大多数的Linux版本都使用Bash 作为默认的Shell程序,当运行Shell程序时,实际运行的是Bash程序

Csh:是因使用C语言的语法风格而得名,在用户的命令行交互界面上进行了很多改进,并增加了历史,别名,文件名替换,作业掏等功能,相比Bsh,Csh在更加适用为用户提供命令交互操作

在现代的 Linux上,sh 已经被 bash 代替,/bin/sh往往是指向/bin/bash的符号链接。

如果你希望查看当前 Linux 的默认 Shell,那么可以输出 SHELL 环境变量:

[root@node1 shell]# echo $SHELL 

/bin/bash

输出结果表明默认的 Shell 是 bash。

​​​​​​​3、shell脚本执行方式

shell脚本有三种执行方式:

3.1 方式一:sh执行脚本

sh执行,进入脚本的工作目录,然后使用对应的sh或bash来执行脚本,种执行方式,脚本文件不需要具有可执行权限

[root@node1 ~]# cd /export/data/shell/ 

[root@node1 shell]#sh hello.sh

hello world

3.2 方式二:工作目录执行

执行脚本时,先进入到脚本所在的目录,然后使用 ./脚本方式执行,这种执行方式,必须保证脚本文件具有可执行权限

[root@node1 ~]#cd /export/data/shell/

[root@node1 shell]# chmod +x hello.sh 

[root@node1 shell]# ./hello.sh

hello world

3.3 方式三:绝对路径执行

绝对路径中执行,指的是直接从根目录/到脚本目录的绝对路径,这种执行方式,必须保证脚本文件具有可执行权限

[root@node1 ~]# /export/shell/hello.sh

hello world

​​​​​​​4、shell的数据类型

4.1 字符串

字符串是shell编程中最常用最有用的数据类型,字符串可以用单引号,也可以用双引号,也可以不用引号。建议使用双引号,因为双引号里可以有变量和特殊字符,可以按照变量和特殊字符去使用。

4.2 整数型

在Shell中所有的变量默认都是字符串型。默认情况下,所有的数值都是不能进行运算的,如果想要进行数学运算,可以使用“$((运算式))”或“$[运算式]”方式运算(后续讲)。

往期回顾:

一、shell编程简介​​​​​​​

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/234572.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SSM框架详解:结构创建与注解应用

文章目录 1. 引言2. SSM框架项目结构创建2.1 目录结构2.2 说明 3. 注解的应用3.1 Controller3.2 Service3.3 Repository3.4 Autowired3.5 RequestMapping3.6 Select、Insert等 4. 结语 🎈个人主页:程序员 小侯 🎐CSDN新晋作者 🎉欢…

SS8847T 双通道 H 桥驱动芯片 替代DRV8847

SS8847E是一款双桥电机驱动器,具有两个H桥驱动器,可以驱动两个直流有刷电机,一个双极步进电机,螺线管或其他感性负载。该器件的工作电压范围为 2.7V 至 15V,每通道可提供高达 1.0A 的负载电流。每个H桥的输出驱动器模块…

在gitlab上使用server_hooks

文章目录 1. 前置条件2. Git Hook2.1 Git Hook 分为两部分:本地和远程2.1.1 本地 Git Hook,由提交和合并等操作触发:2.1.2 远程 Git Hook,运行在网络操作上,例如接收推送的提交: 3. 操作步骤3.1 对所有的仓…

改进YOLO5:结合CVPR2023最新 PConv |包含 YOLOv5 / YOLOv8 模型 YAML 文件

改进YOLO5:结合CVPR2023最新 PConv |包含 YOLOv5 / YOLOv8 模型 YAML 文件 一、论文总结PConv模块优势二、YOLOv51. yaml文件2. common代码文件三、YOLOv81. yaml2. modules文件添加3. Task文件4. 测试论文链接🎁 :https://arxiv.org/pdf/2303.0366

交叉熵损失函数(Cross-Entropy Loss Function)

交叉熵损失函数(Cross-Entropy Loss Function) 在处理机器学习或深度学习问题时,损失/成本函数用于在训练期间优化模型。目标几乎总是最小化损失函数。损失越低,模型越好。交叉熵损失是最重要的成本函数。它用于优化分类模型。对…

Wish防关联是什么?Wish要怎样避免违规封店?

四大跨境电商平台之一wish,做跨境电商的很多人可能都听过wish。随着wish不断完善平台制度,对于多账号运营的卖家要求越来越严厉,wish和亚马逊、eBay等其它跨境电商平台一样,不支持一个卖家开设多个账号多家店铺。 但是对于各位卖家…

【力扣:526】优美的排列

状态压缩动态规划 原理如下: 遍历位图可以得到所有组合序列,将这些序列的每一位看作一个数,取序列中1总量的值作为每轮遍历的位,此时对每个这样的位都能和所有数进行匹配,因为一开始就取的是全排列,并且我们…

LeetCode(46)汇总区间【区间】【简单】

目录 1.题目2.答案3.提交结果截图 链接: 汇总区间 1.题目 给定一个 无重复元素 的 有序 整数数组 nums 。 返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表 。也就是说,nums 的每个元素都恰好被某个区间范围所覆盖,并且不存在属于某…

多多跨境跑出高质量发展“加速度”,解锁拼多多Q3财报背后的王牌

互联网红利渐趋消退,用户拉新难度加大,这些现象也在表明过去电子商务依靠资本、流量快速增长的发展模式已经成为过去式。由高速发展转为高质量发展,在今天每一个经济体与宏观经济发展态势一般,发展的“质量”价值正在被放大开来。…

基于安卓的2048益智游戏的设计与实现

基于安卓的2048益智类游戏的设计与实现 摘要:现如今随着社会日新月异,人们越来越离不开智能手机所提供的灵活性与便携性。安卓系统是在这股手机发展迅猛的潮流中其市场占有率过半的手机平台,基于安卓系统的游戏开发有着不可估量的前景。 本论…

c++ 中名空间中using 引入的细节

如果在引入名空间中的特定成员函数的时候, 全局不能定义同名的函数,但是其实只要参数不同就行 namespace a{int x 1;int fun(){return 0;} }using namespace a; using a::fun;void fun(int x) {} int x 10; int main() {fun(10); } 上面就是一个正确…

源码安装mysql

使用源码安装mysql,这里选择的版本是mysql5.7.35 ,系统是Centos7.6 官网下载地址:https://downloads.mysql.com/archives/community/ 下载源码压缩包 [rootlocalhost ~]# cd /opt[rootlocalhost opt]# wget https://downloads.mysql.com/archives/get/…