shell脚本
1)什么是 shell 脚本?
当命令或程序语句不在命令行下执行,而是通过一个程序文件来执
行,该程序文件即脚本。
2)Shell 脚本运行
1.切换到shell脚本所在目录,执行shell脚本;
cd /home/patch
./start.sh
2.以绝对路径的方式执行bash shell脚本;
/home/patch/start.sh
3.直接使用bash 或者 sh执行shell脚本;
cd /home/patch
bash start.sh
或者
cd /home/patch
sh start.sh
这种方式执行shell脚本,可以不必设定shell的执行权限,甚至都不用在shell文件
中指定bash的路径。因为这种方式是将start.sh作为参数传递给bash或者sh来执行的。这时不是start.sh自己来执行,而是被bash或者sh调用执行。
4.在当前的shell环境中执行bash shell脚本;
cd /home/patch
. start.sh
或者
cd /home/patch
source start.sh
3)shell 脚本规范
1.开头指定脚本解释器
#!/bin/sh 或#!/bin/bash
其他行#表示注释
名称见名知义 backup_mysql.sh,以 sh 结尾
2.开头加版本版权等信息
#Date:创建日期
#Author:作者
#Mail:联系方式
#Function:功能
#Version:版本
3.脚本中尽量不用中文注释
4.多使用内部命令
5.没有必要使用 cat 命令
eg:cat /etc/passwd | grep guru
使用以下方式即可
eg:grep guru etc/passwd
6.代码缩进
7.仔细阅读出错信息
8.脚本以.sh 为扩展名
(4)shell变量
1 自定义变量
touch test.sh
vi test.sh
chmod u+x test.sh
sh test.sh
2.位置变量
touch a.sh
vi a.sh
chmod u+x a.sh
sh a.sh 1 2 3
(5)变量的赋值方式
1.显式赋值
变量名=变量值
touch p.sh
vi p.sh
chmod u+x p.sh
sh p.sh
(6)变量的运算:
- 整数运算
方法一:expr
touch b.sh
vi b.sh
chmod u+x b.sh
sh b.sh
方法二:$(()) + - * % / ** 这里的 ** 代表的是幂
echo $((5-3*2))
echo $((2**3))
方法三:$[]
echo $[5+2] + - * / %
echo $[5**2]
方法四:let
let sum=2+3; echo $sum
let i++; echo $i
方法五:内置命令 declare
declare –i 变量=算术式 declare –i r=2+3