linux100day(day6)--shell脚本简单逻辑

if语句:

if条件语句的使用格式:
  1、单分支语句
    if 条件;then
      执行语句
    fi
  2、双分支语句
    if 条件;then
      执行语句1
    else
      执行语句2
    fi
  3、多分支语句
    if 条件;then
      执行语句1
    elif;then
      执行语句2
    elif;then
      执行语句3
    else
      执行语句4
    fi

在某些条件判断下,如果不满足该条件,我们必须手动退出程序,否则后面的代码无法执行;
代码正确执行完成后,我们制定 exit 0 为正确退出码;

判断某个文件是否存在

#!/bin/bash
# 判断文件是否存在
if [ $# -lt 1 ]; then
  echo "At least one argument." 
  exit 1 
fi
if [ -e $1 ];then
  echo "存在"
else
  echo "不存在"
if

判断当前系统上是否有用户的默认shell程序是否为bash程序,如果有,就显示有多少个这类用户,否则就显示没有这类用户;【并且显示出那些用户是bash】

#!/bin/bash
# 判断用户的默认shell程序类型

declare -i sum=`grep "bin/bash$" /etc/passwd | wc -l`

if grep "/bin/bash$" /etc/passwd &> /dev/null ; then
  echo "存在 $sum 个用户,shell程序为/bin/bash"
  grep "/bin/bash$" /etc/passwd | cut -d: -f1
  exit 0
else
  echo "没有这类用户"
  exit 1
fi

 

写出一个脚本程序,给定一个文件,比如:/etc/inittab a、判断这个文件中是否有空白行? b、如果有,则显示其空白行的行号,否则显示没有空白行
提示,空白行使用^[[:space:]]*$

#!/bin/bash
#

B=`grep -n "^[[:space:]]*$" /etc/inittab | wc -l`
C=`grep -n "^[[:space:]]*$" /root/abc | cut -d: -f1`

if [ $B -eq 0 ] ; then
  echo "没有空白行"
  exit 1
else
  echo "有空白行,空白行为 $C 行"
  exit 0
fi

 

给定一个文件,如果是普通文件,就显示出来,如果是目录文件,也显示出来,否则就显示“无法识别”

#!/bin/bash
#
# input()
read -t 5 -p ("请输入一个文件:") filename // -t 等待时间
echo # 默认用来换行

if [ -n $filename ];then
    echo "eg. /etc/fstab"
    exit 8
fi

if [ -f $filename ]; then
    echo "$filename 是一个普通文件"
    exit 0
elif [ -d $filename ];then
    echo "$filename 是一个目录文件"
    exit 0
else
    echo "无法识别"
    exit 1
fi

 for语句

for语句格式:
  for 变量 in 列表;do  
    循环体
  done

case语句

case分支格式
  case 变量 in
    PAT1)
      执行语句
      ;;
    PAT2)
      执行语句
      ;;
    *)
      默认执行语句
      ;;   

  esac

while 循环

格式:

  定义初始值
  while 条件判断 ; do
    循环体
    值变化语句
  done

break 跳出循环
continue 跳出本次循环
sleep 延长多长时间后,继续向下执行命令

until

循环 与 while 用法相同
区别:只有 判断条件为 False 的时候,才会进入循环语句;

1到100的偶数和

#!/bin/bash
# 偶数和
declare -i sum=0
for i in $(seq 0 2 100);do
  let sum+=$i
done
echo “总数为:$sum

 

posted @ 2019-08-26 19:33  fissure  阅读(184)  评论(0编辑  收藏  举报