shell编程(一)

前端之家收集整理的这篇文章主要介绍了shell编程(一)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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/bash
read -p "please input your name:" NAME
#printf '%s\n' $NAME
if [ $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/bash
s1=$1;
s2=$2;
function sum()
{
  sum=$(($1+$2));
  echo $((s1+s2));
  return $sum;
}
sum 3 4;
total=$?;
echo $total,$?;

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

sh -vx fun.sh 可以看到执行的过程,但是不停
如图:

猜你在找的Bash相关文章