shell if 条件语句

  1.  文件/文件夹判断
    • -e filename 如果 filename存在,则为真
    • -d filename 如果 filename为目录,则为真
    • -r filename 如果 filename可读,则为真
    • -w filename 如果 filename可写,则为真
    • -x filename 如果 filename可执行,则为真
#如果文件夹不存在,创建文件夹
if [ ! -d myfolder ]; then
  mkdir myfolder
fi

#如果文件存在,删除文件
if [ ! -e file ]; then
  rm -f file
fi

#如果test.sh没有执行权限,加上执行权限
if [ ! -x test.sh ]; then
  chmod a+x test.sh
fi
2. 整数变量表达式
    • -eq 等于
    • -ne 不等于
    • -gt 大于
    • -ge 大于等于
    • -lt 小于
    • -le 小于等于
#!/bin/bash
# helper for creating data.
for i in $(seq 1 96) # 96 cores
do
        let front=i*22-22
        if [ $front -gt 2047 ]
        then
                break
        fi
        let back=i*22-1
        if [ $back -gt 2047 ]
        then
                let back=2047
        fi
        nohup bash create_pretraining_data_512_script $front $back >$front-$back.out 2>&1 &
        echo "$front-$back is running"
done
3. 字符串变量表达式
    • if  [ $string ]               如果string 非空,返回真
    • if  [ $a = $b ]           如果a等于b,则为真
    • if  [ $a !=  $b ]         如果a不等于b,则为真
if [ $1 = "SST-2" ]
then
        task_name="SST"
else
        task_name=$1
fi
echo $task_name
0