Shell脚本
创始人
2024-02-01 17:16:30

文章目录

  • Shell脚本学习
    • 1. Shell概念
      • 1.1Shell脚本的好处
      • 1.2 Shell脚本的入门
        • 1.2.1 Linux环境中默认Shell版本
        • 1.2.2 Shell脚本
  • 1.2.3 编写简单的hello,world 脚本
      • 1.2.4 Shell 脚本的多种执行方法
        • 1.2.4.1 第一种 bash 或 sh 加文件的路径
        • 1.2.4.2 第二种 文件的路径直接执行
        • 1.2.4.2.1 赋权,可执行文件
        • 1.2.4.3 第三种 文件的路径前加 . 或 source 执行
        • 1.2.4.3.1 ./ 和 . 的区别是
        • 1.2.4.4 Shell 脚本涉及父子Shell 脚本
      • 1.3 变量:系统标量,自定义变量,全局变量,局部变量
        • 1.3.1 系统变量
        • 1.3.2自定义变量
        • 1.3.2.1 注意定义变量时,两边不能有空格,例如:
        • 1.3.2.2 变量赋值时可以使用 单引号'' 或双引号'"
        • 1.3.2.3 父子bash
        • 1.3.2.4 声明全局变量
        • 1.3.2.4.1 注意全局变量是父子继承规则,子变量值更改,父变量值不变
        • 1.3.3
    • 1.4 变量的运算![在这里插入图片描述](/uploadfile/202402/520585e98b89f83.png)

Shell脚本学习

1. Shell概念

Shell是一个命令行解释器,它接收应用程序/用户命令,然后调用操作系统内核。
在这里插入图片描述

1.1Shell脚本的好处

在这里插入图片描述

1.2 Shell脚本的入门

1.2.1 Linux环境中默认Shell版本

echo $SHELL

在这里插入图片描述

1.2.2 Shell脚本

#号 在sell 脚本中代表的是注释

在这里插入图片描述

1.2.3 编写简单的hello,world 脚本

#!/bin/bash
echo "hello,world"

在这里插入图片描述

1.2.4 Shell 脚本的多种执行方法

1.2.4.1 第一种 bash 或 sh 加文件的路径

在这里插入图片描述

1.2.4.2 第二种 文件的路径直接执行

在这里插入图片描述

1.2.4.2.1 赋权,可执行文件

chmod +x scripts/hello.sh # x 代表可执行文件,r 是读,w 是 写

在这里插入图片描述
在这里插入图片描述

1.2.4.3 第三种 文件的路径前加 . 或 source 执行

在这里插入图片描述
在这里插入图片描述

1.2.4.3.1 ./ 和 . 的区别是

./ :中 . 指的是相对路径
. : 指的是 点命令,后面跟的是他的参数
在这里插入图片描述

1.2.4.4 Shell 脚本涉及父子Shell 脚本

推荐使用这个命令 执行shell脚本命令 不会生成子shell进程,可以避免应为父子shell权限导致shell脚本执行不全

source /app/helloworld.sh #执行shell脚本命令
. /app.helloworld.sh #执行shell脚本命令 

在这里插入图片描述

2. #执行shell脚本命令,会生成子shell进程 
sh ./helloworld.sh #执行shell脚本命令
bash ./helloworld.sh #执行shell脚本命令
./helloworld.sh  #执行shell脚本命令 
/app/helloworld.sh #(绝对路径执行,相对路径也可以执行)执行shell脚本命令,问题:遇到权限不足,办法:加执行权限,chmod +x /app/helloworld 
#推荐使用这个命令  执行shell脚本命令 不会生成子shell进程
source /app/helloworld.sh #执行shell脚本命令
. /app.helloworld.sh #执行shell脚本命令 

1.3 变量:系统标量,自定义变量,全局变量,局部变量

1.3.1 系统变量

在这里插入图片描述

3.echo $HOME #查看系统定义的$HOME变量的值
4.env #查看系统定义的全局所有变量
env | less #更加清楚查看系统定义的全局所有变量
printenv | less #查看全局所有变量
printenv USER #打印$USER变量值(命令时,不用加$符号)
echo $USER #使用系统定义的$USER变量值 (命令时,加$符号)
set | less #查看所有定义的变量(全局,局部,用户自定义变量)

在这里插入图片描述

1.3.2自定义变量

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#定义变量公式 变量名=变量值 (=两边不能有空格,字符串中有空格时,加双引号)
#变量是数字时 
a=2 #定义变量a=2 
echo $a #查看变量$a的值 显示2
#变量是字符串时
my_bianliang=hello
echo $my_bianliang #hello
my_bianliang="hello, world"
echo $my_bianliang #hello, world
#全局变量声明 export my_bianliang (导出,声明)
#全局变量是父子继承规则,
readonly b=5 #只读变量(也就静态变量,可以理解为常量),b不能在被赋值,也不能被撤销
unset 变量名 #撤销变量

1.3.2.1 注意定义变量时,两边不能有空格,例如:

在这里插入图片描述

1.3.2.2 变量赋值时可以使用 单引号’’ 或双引号’"

在这里插入图片描述

1.exho "hello,world $0" #xshell服务器窗口打印名命令 ,$0是变量
exho 'hello,world $0' #xshell服务器窗口打印名命令,直接输出,$0是字符串

1.3.2.3 父子bash

env #查看系统定义的全局所有变量
set #查看所有的变量(系统,自定义,全局,局部)

在这里插入图片描述

1.3.2.4 声明全局变量

语法: export 变量名
#全局变量声明 export my_bianliang (导出,声明)
注意#全局变量是父子继承规则,子变量值更改,父变量值不变
在这里插入图片描述

1.3.2.4.1 注意全局变量是父子继承规则,子变量值更改,父变量值不变

在这里插入图片描述

1.3.3

1.4 变量的运算在这里插入图片描述

相关内容

热门资讯

应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...