str="date"
unset str
echo $str
#此时运行这个shell文件就会报错,因为变量str已经被删除了
以下正式进入主题
知识点:位置变量的定义
#!/bin/
echo $1
echo $2
echo $3
位置变量最多有9个,也就是$1~$9
此时运行./bin.sh +参数它能依次的接收参数
例如此时文件中的内容是
#!/bin/ bash
#./bin.sh
echo $1
echo $2
echo $3
我们在外面运行这个shell文件,并且加上参数
./bin.sh start
界面就能接受到start这个参数并且将它输出出来,没有定义的参数用回车换行显示,如下图所示

实际应用如下:
我们需要在shell脚本中书写switch来使用这个实例,如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 |
#!/bin/bash #txt.sh case $1 in start) echo "我是start参数" ;; stop) echo "我是stop参数" ;; esac |
此时命令:
./txt.sh start
#输出结果为:我是start参数
./txt.sh stop
#输出结果为:我是stop参数
如图所示:

知识点:shell中预定义变量的介绍
变量:$# (获取参数的个数)
echo "总共有${#}个参数"
变量:$* (获取参数分别是什么)
echo "变量分别是${*}"
变量:$? (用于检测上条命令是否执行成功,如果执行成功返回0,即0个错误)
变量:$0 (用于显示当前脚本的名称)
应用示例:
1 2 3 4 5 6 7 |
#!/bin/bash echo "当前您正在执行的脚本名称是:${0}" echo "当前您脚本的参数有${#}个" echo "当前您脚本的参数是:${*}" |
知识点:shell的运算符书写格式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
#!/bin/bash num=$((2*3)) echo $num #输出6 #同理如下所示,将值赋予变量 #!/bin/bash a=3 b=2 num=$((a+b)) echo $num #输出5 |
当然也可用expr来进行运算,如下所示
1 2 3 4 5 6 7 8 9 |
#!/bin/bash a=3 b=2 num=`expr $a + $b` echo $num |
注:且千万注意expr运算表达式书写的时候要写反引号,也就是esc下方的那个键,而$(())这种运算表达式不需要加反引号
总而言之,言而总之,shell的语法有点反人类......但是在服务器运维上,shell脚本起着重要作用
© 著作权归作者所有
文章评论(0)