Skip to content

Latest commit

 

History

History
161 lines (83 loc) · 3.26 KB

File metadata and controls

161 lines (83 loc) · 3.26 KB

shell编程 环境变量

[toc]

shell

shell是一个命令解释器,它为用户提供了一个向linux内核发送请求以便于运行程序的界面系统程序,用户可以用shell来启动、挂起、停止甚至是编写一些程序

shell脚本的格式要求

  • 脚本以 #!/bin/bash开头的 --后缀一般是sh

  • 脚本需要有可以执行的权限

  • 赋予权限+x权限 //chmod u+x hello.sh

  • 不用赋予+x权限,直接执行即可 //sh hello.sh

shell变量

linux中的变量分为系统变量和用户自定义变量

系统变量:$HOME $PWD $USER

set指令可以查看所有的系统变量

自定义变量

基本语法

定义变量:变量名=值

销毁变量:unset变量 //无空格

声明静态变量:readonly变量,注意,不能用unset

  1. 变量名称可以有字母、数字和下划线组成,但是不能以数字开头

  2. 等号两边不能有空格

  3. 变量名称一般习惯用大写,这是一个规范

A='date'反引号,运行里面的命令,并且把结果返回给A

image-20221108165204257

全局变量

export 变量名=变量值 (功能描述:将shell变量输出为环境变量)

source配置文件      (让修改后的配置信息立即生效)

echo $变量名       (查询环境变量的值)

注意 :需要用source /目录/将该目录刷新才能生效

vim /etc/profile

shell脚本的多行注释:

:<<!
注释内容 
!

位置参数变量

当我们执行一个 shell 脚本时,如果希望获取到命令行的参数信息,就可以使用到位置参数变量,比如 : ./myshell.sh 666 888 , 这个就是一个执行 shell 的命令行,可以在 myshell 脚本中获取到参数信息

基本语法

$n (功能描述:n 为数字,$0 代表命令本身,$1-$9 代表第一到第九个参数,十以上的参数,十以上的参数需要用大括号包含,如${10}$* (功能描述:这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体)
$@(功能描述:这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待)
$#(功能描述:这个变量代表命令行中所有参数的个数)

注意:$\$@是有区别的哦!**

image-20220326181605766

分支

#!/bin/bash

case $1 in
1)
	echo "banzhang"
;;

2)
	echo "cls"
;;
*)
	echo "range"
;;
esac

🚀 编译结果如下:

[root@VM-4-6-centos ~]# sh a
actions-runner/ a.sh            
[root@VM-4-6-centos ~]# sh a.sh 
range
[root@VM-4-6-centos ~]# sh a.sh  2
cls
[root@VM-4-6-centos ~]# sh a.sh  1
banzhang

循环

END 链接