`

linux shell 之结构化语法

 
阅读更多

一、case分支语句

 

     语法格式:     

case $变量名 in
                模式1)
            命令序列1
            ;;

                模式2)
            命令序列2
            ;; 

                *)
            默认执行的命令序列     
            ;; 
            
           esac 

    case代码实例

 

#!/bin/bash
read -p "press some key ,then press return :" KEY
case $KEY in
[a-z]|[A-Z])
echo "It's a letter."
;;
[0-9]) 
echo "It's a digit."
;;
*)
echo "It's function keys、Spacebar or other ksys."
;;
esac

 

其中read -p 是从控制台读取字符串

 

二、if分支

 

语法格式

    

if command
then
    commands
fi

或者
if command:then
    commands
fi

或者
if command
then
    commands
else
    commands
fi

或者

if command1
then
    commands
elif command2
then
     commands
fi

 

   test命令语法

   

if test condition
then
   commands
fi

或者

if [condition]
then
   commands
fi

 

    test数值的比较

    n1 -eq n2                        检查n1是否与n2相等

    n1 -ge n2                        检查n1是否大于等于n2

    n1 -gt n2                          检查n1是否大于n2

    n1 -le n2                          。。。。。

    n1 -lt n2                           。。。。。

    n1 -ne n2                         。。。。。。

 

    test字符串比较

    str1 = str2

    str1 != str2

    str1 < str2                  

    str1 > str2

    -n str1                       检查str1的长度是否非0

    -z str1                        检查str1的长度是否为0

    注意,使用的时候<或者 >需要转义\

 

    代码实例

   

#!/bin/bash
var1=10
var2=11

if [ $var1 -gt 5 ]
then
  echo "The test value $var1 is greater than 5"
fi

if [ $var1 -eq $var2 ]
then
  echo "The values are equal"
else
  echo "The valus are fifferent"
fi

运行结果:
The test value 10 is greater than 5
The valus are fifferent


需要注意的是[]左右内侧必须有空格,否则运行报错

 

   三、文件比较

    比较 描述
-d file 检查file是否存在并是一个目录
-e file 检查file是否存在
-f file 检查file是否存在并是一个文件
-r file 检查file是否存在并可读
-s file  检查file是否存在并非空
-w file 检查file是否存在并可写
-x file 检查file是否存在并可执行
-O file 检查file是否存在并属于当前用户所有
-G file 检查file是否存在并且默认组与当前用户相同
file1 -nt file2 检查file1是否比file2新
file1 -ot file2 检查file1是否比file2旧

   

  代码实例

  

#!/bin/bash
if [ -e $HOME ]
then
   echo "home exist"
else
   echo "home not exist"
fi

 

四、for语法

 

for var in list
do 
  commands
done

 

    实例

    

#!/bin/bash
for var in Alaska Ae we wer
do
  echo the next state is $var
done

运行结果:
$ sh fortest.sh
the next state is Alaska
the next state is Ae
the next state is we
the next state is wer

 

   解析文本文件,并循环输出文件内容

   

#!/bin/bash
IFS.OLD=$IFS
IFS=$'\n'
for entry in `cat /etc/passwd`
do
  echo "values in $entry"
  IFS=:
  for value in $entry
  do
    echo "   $value"
  done
done

IFS=$IFS.OLD

 

 

  while,until,..

分享到:
评论

相关推荐

    LINUX与UNIX SHELL编程指南

    shell脚本可以使烦人的手工作业自动化,使你的工作变得简单、轻松!本书通过各种实用的系统管理小技巧和趣味脚本代码,详尽地介绍了shell编程各个不同的方面。学完本书后,你将成为一名shell编程高手。 内容简介 ...

    绝版经典 LINUX与UNIX SHELL编程指南 PDF 高清版 [16.3M]

    shell脚本可以使烦人的手工作业自动化,使你的工作变得简单、轻松!本书通过各种实用的系统管理小技巧和趣味脚本代码,详尽地介绍了shell编程各个不同的方面。学完本书后,你将成为一名shell编程高手。 内容简介 ...

    Linux shell编程指南

    本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 ...

    Linux与unix shell编程指南

    本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 shell ...

    LINUX与UNIX SHELL编程指南 高清PDF

    本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 shell...

    linux与unix shell编程指南

    本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 shell...

    Linux与Unix Shell编程指南(PDF格式,共30章)

    本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 ...

    linux与unix shell编程指南part2

    本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考 目 录 译者序 前言 第一部分 shell 第...

    Linux从零入门实战-2019年七月Z线.txt

    知识点4: Linux目录结构及常用命令 实战项目: 安装Linux虚拟机环境,配置网络及共享文件 第二讲 Linux常用操作命令 知识点1: ls、cd、pwd、cat、mkdir 知识点2: PATH环境变量以及常用快捷键 知识点3: 用户与...

    Linux程序设计中文第4版.part2

     2.6 shell的语法  2.6.1 变量  2.6.2 条件  2.6.3 控制结构  2.6.4 函数  2.6.5 命令  2.6.6 命令的执行  2.6.7 here文档  2.6.8 调试脚本程序  2.7 迈向图形化:dialog工具  2.8 ...

    Linux程序设计中文第4版.part1

     2.6 shell的语法  2.6.1 变量  2.6.2 条件  2.6.3 控制结构  2.6.4 函数  2.6.5 命令  2.6.6 命令的执行  2.6.7 here文档  2.6.8 调试脚本程序  2.7 迈向图形化:dialog工具  2.8 综合应用 ...

    Linux程序设计中文第4版.part3

     2.6 shell的语法  2.6.1 变量  2.6.2 条件  2.6.3 控制结构  2.6.4 函数  2.6.5 命令  2.6.6 命令的执行  2.6.7 here文档  2.6.8 调试脚本程序  2.7 迈向图形化:dialog工具  2.8 ...

    linux教程——很使用的那种

    linux系统结构:硬件、内核层、shell层、应用层、用户。 在安装linux的时候,会弹出 CD Found To begin testing the CD media before installation press OK. Choose Skip to skip the media test and ...

    RED HAT LINUX 6大全

    本书全面系统地介绍了Red Hat Linux 6。全书共分为五个部分,包括35章和四个附录。第一部分为Red Hat Linux的介绍和安装;第二部分为服务配置;第三部分为系统管理;第四部分为Linux编程;第五部分为附录。本书内容...

    Linux程序设计 第4版.haozip01

    2.6 shell的语法 23 2.6.1 变量 23 2.6.2 条件 27 2.6.3 控制结构 29 2.6.4 函数 39 2.6.5 命令 42 2.6.6 命令的执行 58 2.6.7 here文档 61 2.6.8 调试脚本程序 63 2.7 迈向图形化:dialog工具 63 2.8 ...

    Linux程序设计 第4版.haozip02

    2.6 shell的语法 23 2.6.1 变量 23 2.6.2 条件 27 2.6.3 控制结构 29 2.6.4 函数 39 2.6.5 命令 42 2.6.6 命令的执行 58 2.6.7 here文档 61 2.6.8 调试脚本程序 63 2.7 迈向图形化:dialog工具 63 2.8 ...

Global site tag (gtag.js) - Google Analytics