linux shell script 判断式+循环

shell  script代码如下

#!/bin/bash
#program
#    User input dir name,I find the permiaaion of files in the dir.
#History:
#2016.04.14  Caishu  fist release
PATH=$PATH
export PATH
#检查目录是否存在
read -p "Please input the directory:" dir
echo -e  "The dir is $dir \n"
if [ "$dir" == "" -o ! -d "$dir" ]; then
        echo "The $dir is NOT exist in your system."
        exit 1
fi
#测试文件权限
filelist=$(ls $dir)
for filename in $filelist
do
        perm=""
        test -r "$dir/$filename"  && perm="$perm readable"
        test -w "$dir/$filename"  && perm="$perm writeable"
        test -x "$dir/$filename"  && perm="$perm executable"
        echo "The $dir/$filename's permission is $perm"
done
exit 0

注:

1.

if [ "$dir" == "" -o ! -d "$dir" ]

用 [ ] 判断时,一定要在每个字符之间加空格,对于变量要用“变量”,-o 是或   -d 检查文件是否存在且为目录

2.

for filename in $filelist

for 变量 in 范围

若变量为连续值可以用seq关键字,eg:

for i in $(seq 1 100)   #i从1到100

也可以用

for ((初始值;限制值;执行步长))
do 
    程序段
done

eg:

s=0
for (( i=1; i<=100; i++ ))     #注意2重括号之间不能有空格,i=1 前和i++后的空格可以加也可以不加
do
    s=$(($s+$i))                #注意2重括号之间不能有空格,$s+$i 前后可以后空格也可以没有空格,但其“+”号
                                #前后一定不能有空格
done


你可能感兴趣的:(linux shell script 判断式+循环)