shell编程(一)

来源:互联网 发布:seo 优化 编辑:程序博客网 时间:2024/06/03 08:23

shell 编程

定义变量 `x=664` 在变量名.等号和值之间不能有空格输出指令 `echo` echo $x引号的区别 "" '' ""会将空格和分割都不转意,''会将值原样赋值export 将变量升为全局变量$()或`` 可以获取命令的返回值$? 表示上一个命令退出的状态$$ 表示当前进程编号$0 表示当前脚本名称$n 表示n位置的输入参数(n代表数字,n>=1)$#     表示参数的个数,常用于循环$*和$@ 都表示参数列表 expr m + n 计算整数计算$(((2+3)*4)) (2+3)*4计算
  1. 循环for
  for n in 列表    do     echo $n    donefor ((i = 0; i <= 5; i++))    do        echo "welcome $i times"    done
  1. 循环while
while expression    do    command    …    done        i=1    while ((i<=3))    do      echo $i      let i++    done
  1. case
    case $1 in    start)        echo "starting"        ;;    stop)        echo "stoping"        ;;    *)        echo "Usage: {start|stop} “    esac
  1. if 判断
  if [ 条件 ]      then         echo        elif [ 条件 ]         echo          else          echo     fi

例子

#!/bin/bashread -p "please input your name:" NAME#printf '%s\n' $NAMEif [ $NAME = root ]        then                echo "hello ${NAME},  welcome !"        elif [ $NAME = wang ]                then                        echo "hello ${NAME},  welcome !"        else                echo "get out here !"fi

条件:非空返回true,可使用$?验证(0为true,>1为false)
[ condition ] && echo OK || echo notok
条件满足,执行后面的语句

常用判断条件

  • = 字符串比较
  • -lt 小于
  • -le 小于等于
  • -eq 等于
  • -gt 大于
  • -ge 大于等于
  • -ne 不等于
    权限
  • -r 有读的权限
  • -w 有写的权限
  • -x 有执行的权限
  • -f 文件存在并且是一个常规的文件
  • -s 文件存在且不为空
  • -d 文件存在并是一个目录
  • -b文件存在并且是一个块设备
  • -L 文件存在并且是一个链接
    shell 自定义函数
    格式:
    function name()
    {
    echo ” “;
    return []
    }
    例子:
#!/bin/bashs1=$1;s2=$2;function sum(){  sum=$(($1+$2));  echo $((s1+s2));  return $sum;}sum 3 4;total=$?;echo $total,$?;

注:$?返回上个语句的返回值

sh -vx fun.sh 可以看到执行的过程,但是不停
如图:
这里写图片描述

原创粉丝点击