Shell脚本

文章目录

  • 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 变量的运算![在这里插入图片描述](https://img-blog.csdnimg.cn/4dff446f030f4e13b48abe13f68f3eb4.png)

Shell脚本学习

1. Shell概念

Shell是一个命令行解释器,它接收应用程序/用户命令,然后调用操作系统内核。
Shell脚本_第1张图片

1.1Shell脚本的好处

在这里插入图片描述

1.2 Shell脚本的入门

1.2.1 Linux环境中默认Shell版本

echo $SHELL

在这里插入图片描述

1.2.2 Shell脚本

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

Shell脚本_第2张图片

1.2.3 编写简单的hello,world 脚本

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

Shell脚本_第3张图片

1.2.4 Shell 脚本的多种执行方法

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

Shell脚本_第4张图片

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

Shell脚本_第5张图片

1.2.4.2.1 赋权,可执行文件

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

Shell脚本_第6张图片
在这里插入图片描述

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

Shell脚本_第7张图片
Shell脚本_第8张图片

1.2.4.3.1 ./ 和 . 的区别是

./ :中 . 指的是相对路径
. : 指的是 点命令,后面跟的是他的参数
Shell脚本_第9张图片

1.2.4.4 Shell 脚本涉及父子Shell 脚本

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

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

Shell脚本_第10张图片

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 系统变量

Shell脚本_第11张图片

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

Shell脚本_第12张图片

1.3.2自定义变量

Shell脚本_第13张图片
Shell脚本_第14张图片
Shell脚本_第15张图片

#定义变量公式 变量名=变量值 (=两边不能有空格,字符串中有空格时,加双引号)
#变量是数字时 
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 注意定义变量时,两边不能有空格,例如:

Shell脚本_第16张图片

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

Shell脚本_第17张图片

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

1.3.2.3 父子bash

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

Shell脚本_第18张图片

1.3.2.4 声明全局变量

语法: export 变量名
#全局变量声明 export my_bianliang (导出,声明)
注意#全局变量是父子继承规则,子变量值更改,父变量值不变
Shell脚本_第19张图片

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

Shell脚本_第20张图片

1.3.3

1.4 变量的运算Shell脚本_第21张图片

你可能感兴趣的:(Linux,bash,linux,git)