shell是一个非常重要的东西,熟练使用shell脚本能够帮助我们解决linux中的很多的问题。
目录
那么怎么写一个自己的shell脚本呢?跟我一起学习一下吧
首先是一个最简单的shell脚本:
首先先新建一个文件,将其文件权限改为777
修改好文件之后就能够开始写shell脚本了
第一行表示使用什么样的shell
第二行表示给NUM这个变量赋值,需要注意的是,在shell中,变量可以不用定义。注意,“=”左右不能有空格,否则会报错。
第三行表示输出NUM,需要注意的是,变量前加一个$表示取变量的值。echo相当于printf
这样就能够输出对应的值了,第一个简单的shell脚本就实现了。
$0~$9的意义
在shell中,$0~$9中是有特殊意义的,表是shell的第几个参数,下面一个shell可以清楚的看到$0~$9的功能
除了上面那些函数之外,还有一些特殊$,
$#:命令行传参的个数
$*:命令行的参数
$@:命令行的餐顺
$?:前一条代码的执行结构,执行成功为0
$$:当前shell脚本的进程
$path:环境变量
$cpp:CPP的环境变量
测试如下
知道了这些简单的shell指令,我们就可以玩点高级货,比如说在shell脚本中加入函数。
shell中写函数
if函数
在shell中怎么实现一个if函数呢?
它的结构是这样的,它对空格要求非常的严格,为了方便阅读,在这里我拿X代表空格
ifX[X$#X-ltX2X]
then
fi
需要注意的是,在这里大于小于有些区别
-lt:小于
-gt:大于
-ge:大于等于
-le:小于等于
-eq:等于
下面是简单 的一个if函数
该函数的逻辑很简单,命令行传参的数小于2,打印一句话。
case函数
在shell函数中,没有switch函数,只有case函数,它的格式是
case
;;
下面是一个简单的case函数
其中 read是将值读到NUM变量中,其中的1,2,则是匹配条件,匹配成功输出对应的语句
#!/bin/sh
echo "please in put "
read NUM
case $NUM in
1)
echo "Monday"
;;
2)
echo "Twoday"
;;
esac
~
~
说完了选择,就来说说循环了,在shell中主要有两个循环,分别是for和while
for循环
注意bash能够实现打印100次的效果,如果使用sh的话只能够打印两个