[toc]
shell是一个命令解释器,它为用户提供了一个向linux内核发送请求以便于运行程序的界面系统程序,用户可以用shell来启动、挂起、停止甚至是编写一些程序
-
脚本以
#!/bin/bash
开头的 --后缀一般是sh -
脚本需要有可以执行的权限
-
赋予权限
+x
权限//chmod u+x hello.sh
-
不用赋予
+x
权限,直接执行即可//sh hello.sh
linux中的变量分为系统变量和用户自定义变量
系统变量:$HOME $PWD $USER
set
指令可以查看所有的系统变量
基本语法
定义变量:变量名=值
销毁变量:unset变量 //无空格
声明静态变量:readonly变量
,注意,不能用unset
-
变量名称可以有字母、数字和下划线组成,但是不能以数字开头
-
等号两边不能有空格
-
变量名称一般习惯用大写,这是一个规范
A='date'反引号,运行里面的命令,并且把结果返回给A
export 变量名=变量值 (功能描述:将shell变量输出为环境变量)
source配置文件 (让修改后的配置信息立即生效)
echo $变量名 (查询环境变量的值)
注意 :需要用source
/目录/将该目录刷新才能生效
vim /etc/profile
shell脚本的多行注释:
:<<!
注释内容
!
位置参数变量
当我们执行一个 shell 脚本时,如果希望获取到命令行的参数信息,就可以使用到位置参数变量,比如 : ./myshell.sh 666 888
, 这个就是一个执行 shell 的命令行,可以在 myshell 脚本中获取到参数信息
基本语法
$n (功能描述:n 为数字,$0 代表命令本身,$1-$9 代表第一到第九个参数,十以上的参数,十以上的参数需要用大括号包含,如${10})
$* (功能描述:这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体)
$@(功能描述:这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待)
$#(功能描述:这个变量代表命令行中所有参数的个数)
注意:$\
和$@
是有区别的哦!**
#!/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
-
✴️版权声明 © :本书所有内容遵循CC-BY-SA 3.0协议(署名-相同方式共享)©