shell编程
2019-06-13 本文已影响0人
拾柒丶_8257
shell是一个用c语言编写的程序,通过shell用户可以访问操作系统内核服务。既是是一种命令语言,又是一种程序设计语言。
shell是一门脚本语言(所见即所得)
shell脚本开发规范
第一行: #!/bin/bash
shell脚本的执行两种方式
chmod u+x xxx.sh
sh xxx.sh
shell变量
变量=值 如:your_name='hello world'
注意:变量名和等号之间不能有空格,同时,变量名的命名须遵循如下规范:
- 首个字符必须为字母
- 中间不能有空格,可以使用下划线 _
- 不能使用标点符号
- 不能使用bash里的关键字
使用一个定义过的变量,只要在变量名加$即可
your_name="hello world"
echo $your_name
echo ${your_name}
变量类型
- 局部变量
局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量 - 环境变量:
所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。可以用set命令查看当前环境变量 - shell变量
shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行
参数传递
在执行shell脚本时,可以向脚本传递参数。
脚本内获取参数的格式为:0 表示当前脚本名称
特殊字符
- $# 传递到脚本的参数的个数
- $* 以以个单字符串显示所有向脚本传递的参数
- $$ 脚本运行的当前进程 ID 号
- $! 后台运行的最后一个进程的ID号
- * 相同。但是使用时加引号,并在引号中返回每个参数
- $? 显示最后命令的退出状态。0 表示没有错误。 其他任何值表示有错误
shell 运算符
表达式和运算符之间 要有空格, 列: 2 + 2
完整的表达式要被``包含
a=4
b=20
# 加法运算
echo `expr $a + $b`
# 减法运算
echo `expr $b - $a`
# 乘法运算,注意*号前面需要反斜杠
echo `expr $a \* $b`
# 除法运算
echo `expr $b / $a`
此外,还可以通过(())、$[] 进行算术运算
流程控制
# if else 语句
if condition1
then
command1
elif condition2
tnen
command2
else
commandN
fi
# 条件表达式
EQ 就是 EQUAL 等于
NQ 就是NOT EQUAL 不等于
GT 就是 GREATER THAN 大于
LT 就是LESS THAN 小于
GE 就是 GREATER THAN OR EQUAL 大于等于
LE 就是 LESS THAN OR EQUAL 小于等于
for 循环
# 方式一
for N in 1 2 3
do
echo $N
done
# 或
for N in 1 2 3 ;do echo $N;done
# 或
for N in {1..3};do echo $N;done
# 方式二
for ((i=0;i<=5;i++))
do
echo "welcome $i times"
done
# 或
for ((i=0,i<=5;i++));do echo "welcome $i times"; done
while 语法
# 方式一
while expression
do
command
done
# 方式二
i = 1
while ((i <= 3))
do
let i ++
echo $i
done
# 无限循环
while true
do
command
done
case语句
case 值 in
1)
command
;;
2)
command
;;
esac
函数
#!/bin/bash
hello(){
echo " hello world"
echo $1 # 参数1
echo $2 # 参数2
}
# 函数调用
hello abc 123