当前位置:   article > 正文

脚本编写学习

脚本编写

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/696456
推荐阅读
相关标签
  

闽ICP备14008679号