脚本编写学习

1.
if [ true ]; then
            echo "有值"
        else
            echo "没有值"
fi

 

2.
shell=$1
xshell=$2
if [ ${shell} ];then
        echo "${shell} ${xshell}"
        else
        echo "我走了"   
fi

 

3.

a=$1
b=$2
[ -z $a ] && echo "please \$1 number1" && exit 1
[ -z $b ] && echo "please \$2 number2" && exit 2
[ ! $# -eq 2 ] && echo "--please num1 num2" && exit 3
# $#传递到脚本的参数个数
# -eq相当于=, -ne相当于不等于, -ge >= , -gt >, -le <=, -lt <
echo "$a + $b = $(($a+$b))"
echo "$a - $b = $(($a - $b))"
echo "$a * $b = $(($a*$b))"
echo "$a / $b = $(($a/$b))"
if [ $a -eq $b ];then
        echo "这两个参数相等"
        else
        echo "这两个参数不相等"
fi

for animal in dog cat bird
do
    echo "There is ${animal}..."
done

 

4.

read -p "Please input a num:" num
for(( i=1; i<$num; i=i+1 ))
do
    sum=$(($sum+$i))
done
echo "The result of 1+2+3+...$num is:$sum"

5.
read -p "Please input your first name:" firstname #提示用户输入,末尾的first为变量名
read -p "Please input your last name:" lastname 
echo -e "/nYour full name is :$firstname $lastname" #结果由屏幕输出

6.
echo -e "Please Input TWO numbers\n"
read -p "the first number is:" num1#提示用户输入,末尾的num1为变量名
read -p "the second number is:" num2
product=$(($num1*$num2)) 
sum=$(($num1+$num2)) 
red=$(($num1-$num2)) 
div=$(($num1/$num2)) 
echo -e "$num1 x $num2 = $product"
echo -e "$num1 + $num2 = $sum"
echo -e "$num1 - $num2 = $red"
echo -e "$num1 ÷ $num2 = $div"


关于某个文件名的文件类型判断,如 test -e filename 
-e:该文件名是否存在 
-f:该文件名是否存在且为文件 
-d:该文件名是否存在且为目录 
-b:该文件名是否存在且为块设备文件 
-c:该文件名是否存在且为字符设备文件 
-S:该文件名是否存在且为socket文件(大写S) 
-p:该文件名是否存在且为FIFO文件 
-L:该文件名是否存在且为链接文件

关于文件的权限检测,如test -r filename 
-r:该文件名是否存在且具有“可读”权限 
-w:该文件名是否存在且具有“可写”权限 
-x:该文件名是否存在且具有“可执行”权限 
-u:该文件名是否存在且具有“SUID”属性 
-g:该文件名是否存在且具有“SGID”属性 
-k:该文件名是否存在且具有“sticky bit”属性 
-s:该文件名是否存在且为“非空白文件”(小写s)

两个文件之间的比较,如:test file1 -nt file2 
-nt:newer than,判断file1是否比file2新 
-ot:older than,判断file1是否比file2旧 
-ef:判断file1与file2是否为同一文件,可用在判断hard link的判定上。主要意义在于判定两个文件是否指向统一个inode

关于两个整数之间的判定,如test num1 eq num2 
-eq:equal,num1等于num2 
-ne:not equal,num1不等于num2 
-gt:greater than,num1大于num2 
-lt:less than,num1小于num2 
-ge:great equal,num1大于等于num2 
-le:less equal,num1小于等于num2

判定字符串的数据 
test -z string:判定字符串是否为0,若string为空字符串,则为true 
test -n string:判定字符串是否为非零,若string为空字符串,则为false

多重条件判定,例如:test -r filename -a -x filename
-a:两个条件同时成立!例如 test -r file -a -xfile,则file同时具有 r 与 x 权限时,才回传true
-o:任何一个条件成立!例如 test -r file -o -x file,则file具有 r 或者 x 权限时,才回传true
!:反向状态!如test !-x file,当file不具有x时,回传true

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值