linux shell 编程 3(if then else fi 字符串空的判断)

 文章只要是 简单介绍 if 的用法 以及其中涉及到的  /dev/null  无底洞和   2 >&1  的介绍

1、

#!/bin/sh
#name : test linux shell
# 标准输入,获取从键盘输入的数据
read  name     

# 判断是否为空还可以使用 -z $name 如果成立则空

# -s $name  判断不为空  
if [ "$name" ="" ]
then
echo  "name is null "
else
echo   "name value is   $name"
fi

2、

#  判断获取的数值的大小
#!/bin/sh
#name : test linux shell
read  name
if [ "$name" -le 6 ]
then
echo  "value   $name  less than 6 "
else
echo   "value  $name  greater  than 6 "
fi

3、

#  检测 grep 结果,判断这个要找的是否在结果中
#!/bin/sh
#name : test linux shell
if  grep 'linux'  Tlinux.sh  > /dev/null 2>&1
then
echo  "  linux   in  tlinux.sh  "
else
echo   "   linux  not in tlinux l.sh "
fi

4、

#  文件的拷贝判断
#!/bin/sh
#name : test linux shell
if  cp  tests tests12.sh >/dev/null
then
echo "good copy"
else
echo   " `basename $0`: erroe "
fi

*************************/dev/null *******************

可以把/dev/null看作一个"黑洞",它非常等价于一个只写文件,所有写入它的内容都会永远丢失。

而尝试从它那儿读取内容则什么也读不到然而, /dev/null对命令行和脚本都非常的有用。

1、禁止标准输出

cat $filename >/dev/null
# 文件内容丢失,而不会输出到标准输出.

2、禁止标准错误

rm $badname 2>/dev/null
# 这样错误信息[标准错误]就被丢到太平洋去了.

3、禁止标准输出和标准错误的输出.

cat $filename 2>/dev/null >/dev/null

4、清除日志文件内容

cat /dev/null > /var/log/messages
# : > /var/log/messages 有同样的效果, 但不会产生新的进程.(因为:是内建的)


*********************   2>&1   **********************

这儿命令是由三部分组成的,2 、>& 、1 这三部分组成,其中的1,2,以及以后会看到的 0 表示的是他们的输出输入方式,其中0 表示标准输入, 1 标准输出 、2 、表示标准错误输出 而  >& 表示把符号左边的内容以符号右边的形式输出






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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值