shell脚本是自动化管理的重要依据,管理系统里的重要工具,我们要熟练掌握它。
建立一个文件里面写的就是脚本只要三行代码就够了严格意义上来说就一行
最后就是执行
非常简单的操作就可以完成第一个shell 脚本了,不过有几个需要注意,当我们在自己写脚本的时候尽量能够注释好程序内容的说明,包括版本信息,作者等各种信息。其次要注意的是exit 0 是返回0给系统,这个和大多数的语言里的return 0 是差不多的意思。
-e 是可有可无的,加上去可以听见声音。
最后我们要运行脚本 用的是sh shell.sh这个命令。或者我们也可以用bash shell.sh命令。
1、简单脚本的例子
-
接受用户的输入,然后输出
- 数值运算
输入两个数字进行加法运算
这里需要
知道的是,{a}+${b})),需要用两个圆括号,当然也可以用之前学过的declare,这里不再演示。
结果
这里指的一提的就是我们用bash 或者 sh 命令去执行的文件里面的变量是在子进程里的,我们在外面的是没有这个变量的,只有当你去用source 运行文件,变量才会能在父进程中被我们访问到。
2、条件判断式
- 1、if ... then
if [ 条件判断式 ] ; then
fi
这里条件判断式子是用的方括号,而方括号有个注意点就是,两边都要留好空格。方括号里面每个变量最好都用双引号括起来,而常量最好也用双引号或者单引号括起来。
而当判断复杂起来 可以用else,这个在编程语言里也经常出现。
if [ 条件判断式 ] ; then
elif [ 条件判断式 ] ;then //不满足之前的条件判断,但是满足这个条件判断,执行这个命令。
else //不满足上面两个条件判断,执行的命令。
fi
因此,上一个程序可以改成这样。
结果如下。
-2、case...esac
case $变量名 in
"值 1")
;;
如果变量的值等于值1,则执行程序1,值
2")
如果变量的值等于值2,则执行程序2
…省略其他分支…
*)
如果变量的值都不是以上的值,则执行此程序
;;
esac
下面是例子
这里的{0}是该脚本的名字,${1}是该脚本之后的第一个参数。这是一个不接受用户输入,命令行直接运行的程序,命令行接收参数。
下面是运行该脚本的事例。
-3 function
function fname(){
程序段
}
3、循环
-1 while do while 、until do done (不定循环)
while [ condition ]
do
程序段落
done
until[ condition ]
do
程序段落
done
while do while 是满足条件就执行循环,而until则是相反,不满足条件才执行循环。
举个例子
效果如下
- 2、for do done
for var in con1 con2 con3
do
程序段
done
以上面这个循环为例子,var变量在循环中会变,第一次是con1,第二次是con2,第三次是con3
下面为例,passwd这个文件里存放所有用户的账户,我们将所有账户给切割出来,然后我们遍历users, 用id命令账户得到结果。
结果如下
-3 for do done
for (( 初始值; 限制值; 赋值运算 ))
do
程序段
done
这种循环比较简单,和其他编程语言的for循环没什么太大区别。
下面为例子
效果如下
网友评论