关闭

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

864人阅读 评论(0) 收藏 举报
分类:

 文章只要是 简单介绍 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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:955416次
    • 积分:9590
    • 等级:
    • 排名:第1848名
    • 原创:253篇
    • 转载:76篇
    • 译文:0篇
    • 评论:91条
    文章分类
    最新评论