shell脚本编程之if语句学习笔记

 更新时间:2014年09月11日 10:51:26   投稿:junjie  
这篇文章主要介绍了shell脚本编程之if语句学习笔记,本文先是给出了程序代码,然后详细的分解了第句代码的作用,需要的朋友可以参考下

我不是研究linux下的东西的,所以这里只对shell脚本的用法做一个介绍,把我自己在使用过程中出现的问题记录下来,同时也是写下一些shell脚本语法的规则,方便以后查看。先来学习一下条件语句if的用法,通过这一个简单的语法来说明一下shell脚本编程时候的东西。

复制代码 代码如下:

#!/bin/sh
echo "please input text1"
read text1
echo "please input text2"
read text2
#判断字符串等或者是不等只有一个等号
if test $text1 = $text2
then
echo "text1 equals text2"
else
echo "text1 not equals text2"
fi

#判断字符串是否为空,这里的判断记得在$text1俩边加上双引号
if [ -z "$text1" ]
then
echo "text1 is null"
fi
if [ -n "$text1" ];then
echo "text1 is not null"
fi

#算术比较 text1和text2中的内容只能是数字
if [ "$text1" -eq "$text2" ];then
echo "equal"
elif [ "$text1" -gt "$text2" ];then
echo "great"
elif [ "$text1" -le "$text2" ];then
echo "little and equals"
fi

echo "input a file or not file"
read file
#判断是文件还是目录
if [ -d $file ];then
echo "$file is a directory"
elif [ -f $file ];then
echo "$file is a file"
fi
#判断文件的大小是否为空
if [ -s $file ];then
#echo -n是为了去掉换行符
echo -n "$file'size is not null"
fi

#判断文件的读写权限
if [ -f "$file" ];then
 if [ -r "$file" ];then
 echo "read"
 fi
 if [ -w "$file" ];then
 echo "write"
 fi
 if [ -x "$file" ];then
 echo "exe"
 fi
fi

exit 0

我们一点点的来分析一下这个程序,第一行是一个特殊的注释语句,在linux的shell下,使用#作为注释,所以如果你想注释东西就要以#开头,第一行的注释语句是告诉shell执行这个shell脚本的时候使用的是/bin/sh这个目录下的shell。接着使用echo命令来输出一行语句,echo后边的字符串最好用双引号引起来,以后凡是字符串最好都用双引号引起来,这可以避免一些很难查找到的bug,echo后边如何加上-n选项,则代表语句输出以后是不换行的。接着是read命令,这个命令的作用是读取输入到变量text1中,在shell脚本中,我们使用变量的时候不需要预先定义,用的时候直接这样用就可以了。接下来就说到了我们本篇博客要说明的if条件语句了,这个if的语法是if..then..elif..then..else..fi具体的看看代码,代码中已经有了体现,在c语言中我们使用if来判断的时候都是将判断语句写在括号中的,这里的判断是使用test命令来判断,你把它理解为在小括号中一样就可以了,test的判断可以是对字符串的判断,对数值的判断,对文件目录等的判断,这个test可以用[符号来代替,这就是在程序的后边没有使用test而是使用[号的原因,[的判断最后要以]号结尾,判断语句写在中括号中,因为[代表的就是test,所以[和后边的判断条件有空格。接下来说回来test可以判断的类型,代码中显示对字符串的判断,注意我们判断text1和text2相等的时候用的是一个等号,大家c语言习惯了不要忘记是一个等号,对变量的取值采用的是在变量前边加了$符号,这样就获得了变量的值了。同时也要加上双引号,你不加也许发现不了错误,但是如果输入是空,也就是直接敲下了回车键,这个时候判断就成了if test = text2,test后边没有东西当然不对了,如果加上双引号是这样的if test "" = text2,这样就不会出错了。其他的关于一些选项,例如-z、-n、-gt、-f、-r等等这些东西每一个都是英文单词的简写,很简单略过!接下来运行shell程序,使用chmod +x命令赋予可执行的权限,然后运行,一切ok!

相关文章

  • linux lsof命令详解及实例

    linux lsof命令详解及实例

    这篇文章主要介绍了linux lsof命令详解的相关资料,lsof是一个列出当前系统打开文件的工具,这里详细介绍如何使用,需要的朋友可以参考下
    2017-03-03
  • linux shell实现判断输入的数字是否为合理的浮点数

    linux shell实现判断输入的数字是否为合理的浮点数

    这篇文章主要介绍了linux shell实现判断输入的数字是否为合理的浮点数,需要的朋友可以参考下
    2016-08-08
  • Linux查看当前使用的shell的方法总结

    Linux查看当前使用的shell的方法总结

    这篇文章总结了在Linux和Unix系统中查看当前使用的shell的几种方法,包括使用$0环境变量、$SHELL环境变量、ps命令、echo命令、readlink命令和grep命令,并通过代码示例讲解的非常详细,需要的朋友可以参考下
    2025-03-03
  • Bash脚本中特殊变量$0的使用

    Bash脚本中特殊变量$0的使用

    本文主要介绍了Bash脚本中特殊变量$0的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • Linux命令定位与查找之which、whereis和find的用法示例详解

    Linux命令定位与查找之which、whereis和find的用法示例详解

    Linux命令的定位与查找是我们日常工作中必备的技能,掌握which、whereis和find这三个命令,可以帮助我们更加高效地进行文件搜索和定位工作,这篇文章主要介绍了Linux命令定位与查找:which、whereis和find的用法详解,需要的朋友可以参考下
    2023-10-10
  • sed找到关键字所在行并将其前面的第一个字符删除的命令

    sed找到关键字所在行并将其前面的第一个字符删除的命令

    sed找到关键字所在行并将其前面的第一个字符删除的命令,需要的朋友可以参考下
    2013-02-02
  • Linux Shell中三种引号的用法及区别

    Linux Shell中三种引号的用法及区别

    Linux Shell中有三种引号,分别为双引号(" ")、单引号(' ')以及反引号(` `)。那么这三种引号有什么区别呢?下面脚本之家小编给大家介绍下用法及区别,需要的的朋友参考下
    2017-03-03
  • Linux基础命令日常积累

    Linux基础命令日常积累

    Linux命令虽然用处很多,用过这么多次但是对其步骤、命令还是不记得,每次还是要到处找资料,下面小编把本次linux生产环境搭建分享在脚本之家平台,供大家参考
    2015-10-10
  • Shell函数返回值方式

    Shell函数返回值方式

    本文主要介绍了Shell函数返回值方式,主要介绍了两种返回方式,分别介绍了场景的使用和区别,具有一定的参考价值,感兴趣的可以了解一下
    2022-08-08
  • linux shell流程控制语句实例讲解(if、for、while、case语句实例)

    linux shell流程控制语句实例讲解(if、for、while、case语句实例)

    linux shell有一套自己的流程控制语句,其中包括条件语句(if),循环语句(for,while),选择语句(case)。下面我将通过例子介绍下,各个语句使用方法
    2014-04-04

最新评论