一、什么是shell脚本?
基本上,shell脚本有点像是早期的批处理文件(.bat),即将一些命令集合一起一次执行(一次性执行多个命令)。但是shell脚本拥有更强的功能,那就是它可以进行类似程序的编写,并且不需要经过编译就能够执行。
shell脚本是利用shell的功能所写的一个程序。这个程序是使用纯文本文件,将一些shell的语法与命令(含外部命令)写在里面,搭配正则表达式、管道命令与数据流重定向等功能,已达到我们想要的功能。
二、脚本的书写规范
格式:必须 #!/bin/shell 起头(当文件执行的时候,能加载bash相关的配置文件,一般来说是非登录 shell的 ~/.bashrc)
拥有可读、执行权限:chmod a+x 文件名
执行脚本:
①、./xx.sh
②、bash xx.sh
③、source xx.sh
④、sh xx.sh
注意:
①、命令是从上向下、从左向右分析与执行的
②、命令、选项与参数之间的多个空格会被忽略
③、空白行也将会被忽略掉,并且[Tab]键所产生的空白同样视为空格键
④、如果读取到一个Enter符号(CR),就尝试开始执行改行(或该串)命令
⑤、至于如果一行内容太多,写不下可以换行
⑥、【#】后面的所有内容被当做注释
编写脚本的时候,需要说明该脚本的:
①、内容与功能
②、版本信息
③、作者和联系方式
④、建文件日期
⑤、历史记录
⑥、脚本内较特殊的命令,使用【绝对路径的方式来执行】
⑦、脚本运行时需要的环境变量预先声明和设置
三、shell脚本的练习
1、交互式脚本:变量内容由用户决定
很多时候安装的时候会问你【需要安装的目录】,这个时候就是让用户去输入变量内容。
案例一:让用户输入:姓名,最后在屏幕上输出用户输入的信息
脚本信息如下:
显示效果如下:
2、随日期变化:利用date创建文件
案例二:创建三个文件,文件名为分别为 a)自定义名字+当前时间、b)自定义名字+前一天时间、c)自定义名字+前二天时间
脚本编写代码如下:
显示效果如下:
3、数值运算:简单的加减乘除
案例三:用户输入两个数字,实现相乘
脚本编写代码如下:
显示效果如下:
在数值运算上可以使用:
declear -i total=${number1}*${number2}
total= `expr $number1 \* $number2`
total=$((${number1}*${number2}))
关于bc命令的使用如下:
通过管道符
$ echo "15+5" | bc
20
scale=2 设小数位,2 代表保留两位:
$ echo 'scale=2; (2.777 - 1.4744)/1' | bc
1.30
bc 除了 scale 来设定小数位之外,还有 ibase 和 obase 来其它进制的运算:
$ echo "ibase=2;111" |bc
7
进制转换
#!/bin/bash
abc=192
echo "obase=2;$abc" | bc
<pre>
<p>
执行结果为:11000000,这是用bc将十进制转换成二进制。</p>
<pre>
#!/bin/bash
abc=11000000
echo "obase=10;ibase=2;$abc" | bc
执行结果为:192,这是用bc将二进制转换为十进制。
计算平方和平方根:
$ echo "10^10" | bc
10000000000
$ echo "sqrt(100)" | bc
10