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