shell编程
请注意不要在windows下写脚本复制到linux里回车和换行会引起奇怪的错误
1.#!指定执行脚本的shell
2.#注释行
3.命令和控制结构
创建shell程序的步骤
一 创建一个包含命令行的文本
二 修改这个文件的权限 chmod u+x
三 执行 ./example (也可以使用sh example执行)
#!/bin/bash #指定shell的版本
/usr/local/php/sbin/php-fpm
执行shell脚本
sh [脚本名]
. [脚本名]
变量的定义
shell有2种变量:临时变量和永久变量
永久变量也叫环境变量 不会随着shell的执行而消失
例子:
NUM=1
使用赋值 A = $NUM
查看输出 echo $A
删除变量
unset 变量名
注:变量定义中单引号和双引号和php中也是一样的 单引号是不会检查变量的 双引号会检查$符号的变量值
位置变量
ls -l file1 file2 file3
$0 这个程序的文件名ls -l
$n 这个程序的第N个参数值,n=1-9
特殊变量
$* 这个程序的所有参数
$# 这个程序的参数个数
$$ 这个程序的pid
$! 执行上一个后台命令的pid
$? 执行上一个命令的返回值
例子 echo $?
返回值 是0或非0 0为执行成功
shell 命令
read命令: 从磁盘读入数据,赋给变量
如 read USERNAME
expr命令:对整数型变量进行算数运算
例如 : expr 3[空格]+ [空格]5
expr $var1[空格]- [空格]5
expr $var1[空格]/ [空格]$var2
expr $var1[空格]/ *[空格]$var2
注意 空格不可忽略
变量测试语句
格式 : test 测试条件
例子: test str1=str2
test -n str1 不为空
test -d file 是否为目录
test -x file 指定文件是否可执行
test -a file 文件是否存在
流程控制
if 条件1 then
命令1
elif 条件2 then
命令2
else
命令3
fi
if [ 表达式 ];then
命令
fi
退出
exit 0 表示正常退出
for...done 语句
格式 : for 变量 in 名字表
do
命令列表
done
函数
函数名 ()
{
命令
}
调用 :不带()
函数名 参数1 参数2