1.利用 test 指令的测试功能

$ test -e hello.sh && echo "ok" || echo "no"
ok

2.首先,判断一下,让使用者输入一个文件名,我们判断:

  1. 这个文件是否存在,若不存在则给予一个“Filename does not exist”的讯息,并中断程序;
  2. 若这个文件存在,则判断他是个文件或目录,结果输出“Filename is regular file”或 “Filename is directory”
  3. 判断一下,执行者的身份对这个文件或目录所拥有的权限,并输出权限数据!
#!/bin/bash
#Program
# use input filename, program will check the flowing:
# )exist? )file/directory? )file permission
#Histroy:
#// lzyer First release
echo "please input filename, i will check sth."
read -p "input filename: " filename
#.
test -z ${filename} && echo "You MUST input filename" && exit
#
test ! -e ${filename} && echo "the filename '${filename}' DO NOT exist " && exit
#
test -f ${filename} && filetype="file"
test -d ${filename} && filetype="directory"
test -r ${filename} && perm="readable"
test -w ${filename} && perm="${perm} writeable"
test -x ${filename} && perm="${perm} executable"
echo "the filename:${filename} is ${filetype}"
echo "and permission for you are :${perm}"

3.利用判断符号 [ ]

[  "$HOME"  ==  "$MAIL"  ]
[□"$HOME"□==□"$MAIL"□]
↑ ↑ ↑ ↑

案例设置如下:

  1. 当执行一个程序的时候,这个程序会让使用者选择 Y 或 N ,
  2. 如果使用者输入 Y 或 y 时,就显示“ OK, continue ”
  3. 如果使用者输入 n 或 N 时,就显示“ Oh, interrupt !”
  4. 如果不是 Y/y/N/n 之内的其他字符,就显示“ I don't know what your choice is ”
#!/bin/bash
#Program:
# This program shows "Hello World!" in your screen.
#History:
# // lzyer First release
read -p "Please input (Y/N)? " yn
[ "${yn}" == "Y" -o "${yn}" == "y" ] && echo "ok, continue " && exit
[ "${yn}" == "N" -o "${yn}" == "n" ] && echo "oh, interrupt "&& exit
echo "i don't know what you choice is " && exit

4.Shell script 的默认变量($0, $1...)

  • $# :代表后接的参数“个数”,以上表为例这里显示为“ 4 ”;
  • $@ :代表“ "$1" "$2" "$3" "$4" ”之意,每个变量是独立的(用双引号括起来);
  • $* :代表“ "$1<u>c</u>$2<u>c</u>$3<u>c</u>$4" ”,其中 <u>c</u> 为分隔字符,默认为空白键,
  • 程序的文件名为何?
  • 共有几个参数?
  • 若参数的个数小于 2 则告知使用者参数数量太少
  • 全部的参数内容为何?
  • 第一个参数为何?
  • 第二个参数为何
#!/bin/bash
#Program
# program show the script name,parameters
#Histroy
# // lzyer First release
echo "the script name is ==> ${0}"
echo "Total paramter number is ==> $#"
[ "$#" -lt ] && echo "the number of parameters is less than 2.STOP here" && exit
echo "your whole parameter is ==> '$@'"
echo "The 1st parameter ${1}"
echo "The 2nd parameter ${2}"

5.shift:造成参数变量号码偏移

#!/bin/bash
#Program:
# program show the effect of shift function.
#History:
#// lzyer First release
echo "Total parameter number is $#"
echo "your whole parameter is $@"
shift
echo "Total parameter number is $#"
echo "your whole parameter is $@"
shift
echo "Total parameter number is $#"
echo "your whole parameter is $@"

linux bash善用判断式的更多相关文章

  1. Linux学习-善用判断式

    利用 test 指令的测试功能 要检测系统上面某些文件或者是相关的属性时,利用 test 这个指令来工作真是好用得不 得了, 举例来说,我要检查 /dmtsai 是否存在时,使用: [dmtsai@s ...

  2. Linux学习十八之、善用判断式

    原文地址:http://vbird.dic.ksu.edu.tw/linux_basic/0340bashshell-scripts_3.php 善用判断式 在第十一章中,我们提到过 $? 这个变量所 ...

  3. 第十三章、学习 Shell Scripts 善用判断式

    善用判断式 利用 test 命令的测试功能 我要检查 /dmtsai 是否存在时,使用: [root@www ~]# test -e /dmtsai [root@www ~]# test -e /dm ...

  4. linux bash shell 判断目录是否为空的函数

    #!/bin/sh ##方法一 判断输出字符数统计为0 is_empty_dir(){ |wc -w` } ##方法二 判断输出string为空 #is_empty_dir(){ # ` ] #} t ...

  5. Linux中的判断式

    格式一:test [参数] 判断内容格式二:[ [参数] 判断内容 ] 说明: a.格式二可以认为是格式一的缩写 b.格式二里中括号和内容之间要有空格 基于文件的判断-d 判断文件是否存在,并且是目录 ...

  6. 第十三章、学习 Shell Scripts 条件判断式

    利用 if .... then 单层.简单条件判断式 if [ 条件判断式 ]; then 当条件判断式成立时,可以进行的命令工作内容: fi <==将 if 反过来写,就成为 fi !结束 i ...

  7. Linux if 命令判断条件总结

    Linux if 命令判断条件总结Linux if命令 关于文件属性的判断式 -a 如果文件存在 -b 如果文件存在,且该文件是区域设备文件 -c 当file存在并且是字符设备文件时返回真 -d 当p ...

  8. Linux Bash Script conditions

    Linux Bash Script conditions shell 编程之条件判断 条件判断式语句.单分支 if 语句.双分支 if 语句.多分支 if 语句.case 语句 refs http:/ ...

  9. 【重点】Shell入门教程:流程控制(3)条件判断式的真假值

    之前曾提到,在Bash中什么是真什么是假,是以命令的结束状态是否为0来做判断.传回0,即为真:传回非0,即为假. 在Bash中,这种可以影响程序流程的式子,称为条件判断式.判断式的操作数分成“单元”及 ...

随机推荐

  1. SHELL里执行HIVE导出文件处理成CSV文件

    #!/bin/bash #用途: #.当前目录的txt文件批量转csv #.制表符转逗号分隔符 #.NULL去除 #.删除WARN警告 for i in `ls ./*.txt` do sed -e ...

  2. 让CPU使用率正弦变化

    网络上流传一个面试题,说如何编程让CPU的使用率按照正弦方式变化 代码如下(运行环境Linux): #include <stdio.h> #include <stdlib.h> ...

  3. java入门---windows和Linux,UNIX,Solaris,FreeBSD下开发环境配置

        首先来看Windows下的操作.我们需要下载java开发工具包JDK.下载地址:http://www.oracle.com/technetwork/java/javase/downloads/ ...

  4. DATAGUARD实施文档

    DATAGUARD实施文档 一.前期准备及备机安装: 通过获取到的主机信息规划备机数据库安装基础信息:(注:在安装备机时需要尽量保障与主机库信息一致,以下表格中的备机信息为根据主机信息规划的安装信息. ...

  5. C++11中rvalue references的使用

    Rvalue references are a feature of C++ that was added with the C++11 standard. The syntax of an rval ...

  6. Putty的设置保存

    用了好几年都不知道这功能, 以前每次在连接时只能手工更改字符为utf-8,当时在想怎么这么弱呢 后来才知道... 1 字符 Translation下  字体Appearance下 颜色Colours下 ...

  7. 形象的理解Strong和Weak

    Strong Weak

  8. OpenCV入门:(四:混合两张图片)

    1. 原理 对两张图片使用如下公式可以得到两张图片的混合图片, 其中f0(x),f1(x)分别是图片1和图片2同一位置的像素点. 2. OpenCV中的AddWeight函数 函数和参数说明: ) s ...

  9. python接口测试(二)——配置文件的使用

    在接口测试中,有些东西是固定不变的,比如url,若想更改的话就必须每个请求都更改,因此,可以放到配置文件中使用. 1.创建一个.ini的配置文件,如图: 2.读取配件文件中的内容,后续进行引用 #co ...

  10. 关于缺失值(missing value)的处理---机器学习 Imputer

    关于缺失值(missing value)的处理 在sklearn的preprocessing包中包含了对数据集中缺失值的处理,主要是应用Imputer类进行处理. 首先需要说明的是,numpy的数组中 ...