Linux软件测试程序员

shell命令总结(二)

2018-07-05  本文已影响89人  迈阿密小白

接上篇学习笔记,这次主要总结参数 传递 运算符 循环 相关

传递参数

执行脚本的时候,可以向脚本传递参数,脚本内获取参数的格式为:n。 n代表一个数字, 1 为执行脚本的第一个参数, 2 为执行脚本的第二个参数..... 但是参数过多,如10,就要用{}括起来,{10}

举个例子:

先创建一个脚本try.sh,内容如下

#!/bin/bash
#try
echo "脚本名:$0"
echo "第一个参数: $1"
echo "第二个参数:$2"
echo "第十个参数:$10"
echo "第十个参数:${10}"
echo "参数总数: $#"
echo "参数全部输出: $*"
echo "参数全部输出: $@"

运行

 bash ./try.sh 1 2 3 4 5 6 7 8 9 aa 11

脚本名:./try.sh
第一个参数: 1
第二个参数:2
第十个参数:10    ----这边未加{},所以认为 $1 后面加 0 
第十个参数:aa    ----正确结果
参数总数: 11
参数全部输出: 1 2 3 4 5 6 7 8 9 aa 11   同"1 2 3 4 5 6 7 8 9 aa 11"
参数全部输出: 1 2 3 4 5 6 7 8 9 aa 11   同"1" "2" "3" ......"aa" "11"

运算符

a=10;b=20
[ $a == $b ];echo $?  ----1  中间有空格; $? 标识上一步的结果,如果0正确,其他数字都是错误
[ $a != $b ];echo $?  ----0
c=`expr $a + $b`;echo $c  ---30
d=`expr $a \* %b`;echo $c  ---200  乘法要用\标识一下
 [ $a -eq $b ];echo $?  ----1 等于
 [ $a -lt $b ];echo $?  ----0 小于
 [ $a -gt $b ];echo $?  ----1 大于
 [ $a -ne $b ];echo $?  ----0 不等于
 [ $a -le $b -a $a -eq $b ];echo $?  --- 1  小于等于且等于
 [ $a -le $b -a $a -eq $b ];echo $?  --- 0  小于等于或等于
a="hello shell"
[ -n "$a" ];echo $? --- 0   不为0,返回true
[ -z "$a" ];echo $? --- 1   不为0,返回false
[ "$a" ];echo $?   --- 0   字符串不为空,返回true
if [ "$str" ]; 
then  
    echo "不是空"; 
else 
    echo "空字符串"; 
fi                    -----不是空

循环

d='/d/awk.txt'
if [-e $d ]           ---- 文件存在,所以 file exist
then
echo file exist
else
echo file not exist
fi

if [ -d $d ]        ---- file 
then 
echo not dir
elif [ -f $d ]
echo file
else 
echo over
fi
上一篇 下一篇

猜你喜欢

热点阅读