linux的if语句并且命令,linux命令:if语句练习

1、练习:写一个脚本

判断当前系统上是否有用户的默认shell为bash;

如果有,就显示有多少个这类用户,且显示其中一个用户名称;

否则,就显示没有这类用户;

#!/bin/bash

# program

#  练习使用if语句判断默认shell

# history  level1 2016-10-19-14:00

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bash

export PATH

grep "\ /dev/null

RESULT=`echo $?`

if [ $RESULT -eq 0 ] ; then

BASHIN=`grep "\

echo "The number of bash users are `grep "\

echo "the one of is $BASHIN."

else

echo "no such user"

fi

提示:“引用”一个命令的执行结果,要使用命令引用;比如: RESAULTS=`wc -l /etc/passwd | cut -d: -f1`;

使用一个命令的执行状态结果,要直接执行此命令,一定不能引用;比如: if id user1一句中的id命令就一定不能加引号;

如果想把一个命令的执行结果赋值给某变量,要使用命令引用,比如USERID=`id -u user1`;

如果想把一个命令的执行状态结果保存下来,并作为命令执行成功与否的判断条件,则需要先执行此命令,而后引用其状态结果,如

id -u user1

RETVAL=$?

此句绝对不可以写为RETVAL=`id -uuser1`;

2、练习:写一个脚本

给定一个文件,比如/etc/inittab

判断这个文件中是否有空白行;

如果有,则显示其空白行数;否则,显示没有空白行。

#!/bin/bash

# program

#  练习使用if语句判断默认shell

# history  level1 2016-10-19-14:20

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bash

export PATH

grep "^$" /etc/inittab

RESULT=`echo $?`

if [ $RESULT -eq 0 ]; then

echo "The lines is `grep "^$" /etc/inittab | wc -l`"

else

echo "The lines is not exist."

fi

3、练习:写一个脚本

给定一个用户,判断其UID与GID是否一样

如果一样,就显示此用户为“good guy”;否则,就显示此用户为“bad guy”。

#!/bin/bash

# program

# 判断用户的GID和UID是否一致

# history 2016-10-19-15:26

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bash

export PATH

NAME=user5

USERUID=`id -u $NAME` (USERUID=`grep "\" /etc/passwd | cut -d: -f3`)

GROUPGID=`id -g $NAME` (USERUID=`grep "\" /etc/passwd | cut -d: -f4`)

if [ $USERUID -eq $USERGID ]; then

echo "The $NAME is good guy."

else

echo "The $NAME is bad guy."

fi

4、练习:写一个脚本

给定一个用户,获取其密码警告期限;

而后判断用户密码使用期限是否已经小于警告期限;

提示:计算方法,最长使用期限减去已经使用的天数即为剩余使用期限;

如果小于,则显示“Warning”;否则,就显示“OK”。

#!/bin/bash

# program

# 判断用户密码使用期限是否到期

# history time 2016-10-19-16:18

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bash

export PATH

USERNAME=donggen

CHADAY=`grep "\" /etc/shadow | cut -d: -f3`

LONGDAY=`grep "\" /etc/shadow | cut -d: -f5`

WARNING=`grep "\" /etc/shadow | cut -d: -f6`

let TODAYTIMES=`date +%s`/86400

let USEDTIMES=$TODAYTIMES-$CHADAY

let SURPLUSTIMES=$LONGDAY-$USEDTIMES

if [ $SURPLUSTIMES -lt $WARNING ]; then

echo "The surplus times is Warning!"

else

echo "The surplus times is OK!"

fi

5、练习:写一个脚本

给定一个文件;

如果不存在,直接退出;

如果是一个普通文件,就显示为普通文件

如果是一个目录,亦显示出来

否则,此为无法识别的文件;

#!/bin/bash

#program:

#判断文件的类型

#history time:2016-10-20-11:40

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bash

export PATH

FILENAME=/etc/inittab

if [ ! -e $FILENAME ]; then

echo "The $FILENAME is not exist."

exit 6

fi

if [ -f $FILENAME ]; then

echo "The $FILENAME is common file."

elif [ -d $FILENAME ]; then

echo "The $FILENAME is directory."

else

echo "The $FILENNAME is unknown."

fi

6、练习:写一个脚本

能接受一个参数(文件路径)

判定:此参数如果是一个存在的文件,就显示“ok";否则就显示“no such file.”

#!/bin/bash

#program:

#练习接受一个参数作为变量

#history time:2016-10-20-15:05

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bash

export PATH

if [  $# -lt 1 ]; then

echo " Usage: $0 AGR1 [AGR2...]"

exit 6

fi

if [ -e $1 ]; then

echo "ok."

else

echo "no such file"

fi

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值