Linux Shell编程
什么是Shell
?
Shell
是一共命令解释器,它接收应用程序/用户命令,然后调用系统内核。
我的Centos
虚拟机下的Shell
解析器
Shell
脚本入门
-
指定解析器
#!/bin/bash
-
执行文件
#example file [hello.sh] sh hello.sh #创建一个子shell执行脚本 bash hello.sh ./hello.sh #这种方法运行,需要获取文件的执行权限 source hello.sh #当前会话执行脚本 . hello.sh
source
命令的作用- 刷新当前
shell
环境 - 执行
shell
脚本
- 刷新当前
变量
查看所有环境变量命令env
printenv
-
常用的系统变量
$HOME
$PWD
$SHELL
$USER
-
定义变量
变量名=变量值
【局部变量】export 变量名
【提升为了全局变量】等号前后不能有空格!!!
-
撤销变量
unset 变量名
-
定义只读变量
readonly 变量名=变量值
只读变量不允许
unset
-
全局变量的注意点
如图可以得出结论:
-
全局变量可以使用
export
将普通变量提升为全局变量 -
内层bash修改全局变量的值不会对外层bash全局变量产生修改,只会对内层bash的内存bash产生修改
-
-
特殊变量
-
$n
位置参数n不是字母n,而是某个数字
-
$#
参数个数不统计
$0
-
$*
表示命令行的所有参数,将其看成一个整体$@
表示命令行的所有参数,可以看成一个数组但是,下图无法看出区别
-
$?
最后一次执行命令的返回状态,变量为0表示上一次正确执行
-
运算符
-
使用
expr
计算 -
使用
$((运算操作))
$[运算操作]
流程控制
-
if判断
-
case判断
-
for循环
for ((初始值;循环控制条件;变量变化)) do 程序 done
for 变量 in 列表 do 循环体 done
-
while循环
while [ 条件表达式 ] do 程序 done
读取输出
read (option) (param)
- option
-p
读取时显示的提示符-t
等待时间,如果不加-t
表示一直等待
- param
- 指定读取的变量名
小练习
-
相加计算
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。