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

原创 2015年11月19日 22:19:46

 文章只要是 简单介绍 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 、表示标准错误输出 而  >& 表示把符号左边的内容以符号右边的形式输出






ELK+Kafka 企业日志收集平台(二)

上篇博文主要总结了一下elk、基于kafka的zookeeper集群搭建,以及系统日志通过zookeeper集群达到我们集群的整个过程。下面我们接着下面这个未完成的几个主题 4.Kibana部署; ...
  • gb4215287
  • gb4215287
  • 2017年08月22日 17:39
  • 168

PHP复习第一天基础语法

$a=0xf;//声明一个16进制数 echo $a.""; $s1=01234567; $s2=012345678; if($s1==$s2){ echo "Yes ".$s1; }el...
  • u014230945
  • u014230945
  • 2017年04月28日 19:37
  • 262

linux shell ---if...else...fi

if.....else.....fi If given condition is true then command1 is executed otherwise command2 is execu...
  • VLTIC
  • VLTIC
  • 2013年03月17日 12:30
  • 5095

shell 脚本 if then else fi

---------------------------------------------------------------echo "Please y to continue"read ynif ...
  • qsd007
  • qsd007
  • 2007年03月09日 14:07
  • 23712

awk调用函数---内部定义函数和外部shell定义函数

背景在处理数据的时候对于一些文本需要做预处理;或者这些文本是通过一系列的处理演变得出;这些都写在awk中一是程序显得臃肿混乱,二是耦合性太强。shell函数先温习一下普通shell的写法[root@w...
  • yue530tomtom
  • yue530tomtom
  • 2017年07月25日 18:03
  • 316

linux环境纯命令行俄罗斯方块C语言版

#include #include #include #include #include #include #include enum { S_VERTICAL, S_HORI...
  • qiuhui00
  • qiuhui00
  • 2018年01月30日 17:10
  • 22

Shell中的条件判断语句if~then~fi

Shell中的条件判断语句是前面一篇“Shell中的条件测试语句”的升级篇,也就是说,前面的测试语句是为了现在的判断语句if~then~fi语句服务的。     我们还是按照注意点和代码实现的方式铺开...
  • puqutogether
  • puqutogether
  • 2015年05月18日 08:59
  • 6119

Shell脚本语法-- if/then/elif/else/fi

和C语言类似,在Shell中用if、then、elif、else、fi这几条命令实现分支控制。这种流程控制语句本质上也是由若干条Shell命令组成的,例如先前讲过的 if [ -f ~/.bashr...
  • ljchlx
  • ljchlx
  • 2014年01月14日 14:58
  • 27806

Linux 抓取网页实例(shell+awk)

上一篇博客讲了Linux抓取网页的方式,有curl和wget两种方式,这篇将重点讲Linux抓取网页的实例——抓取google play全球12国的游戏TOP排名 要抓取google play游...
  • YUZHIBOYI
  • YUZHIBOYI
  • 2012年07月12日 14:41
  • 2484

INFORMIX修改数据库锁模式的SHELL

#将数据库中所有表的锁模式改为行级锁#Usage:change_db_lock_row.sh dbname#本地变量#lv_dbnameif [ ! $# -eq 1 ]then  echo "Usa...
  • BugLu
  • BugLu
  • 2006年07月21日 09:39
  • 1497
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:linux shell 编程 3(if then else fi 字符串空的判断)
举报原因:
原因补充:

(最多只允许输入30个字)