linux bash善用判断式
1.利用 test 指令的测试功能
$ test -e hello.sh && echo "ok" || echo "no"
ok
2.首先,判断一下,让使用者输入一个文件名,我们判断:
- 这个文件是否存在,若不存在则给予一个“Filename does not exist”的讯息,并中断程序;
- 若这个文件存在,则判断他是个文件或目录,结果输出“Filename is regular file”或 “Filename is directory”
- 判断一下,执行者的身份对这个文件或目录所拥有的权限,并输出权限数据!
#!/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"□]
↑ ↑ ↑ ↑
案例设置如下:
- 当执行一个程序的时候,这个程序会让使用者选择 Y 或 N ,
- 如果使用者输入 Y 或 y 时,就显示“ OK, continue ”
- 如果使用者输入 n 或 N 时,就显示“ Oh, interrupt !”
- 如果不是 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善用判断式的更多相关文章
- Linux学习-善用判断式
利用 test 指令的测试功能 要检测系统上面某些文件或者是相关的属性时,利用 test 这个指令来工作真是好用得不 得了, 举例来说,我要检查 /dmtsai 是否存在时,使用: [dmtsai@s ...
- Linux学习十八之、善用判断式
原文地址:http://vbird.dic.ksu.edu.tw/linux_basic/0340bashshell-scripts_3.php 善用判断式 在第十一章中,我们提到过 $? 这个变量所 ...
- 第十三章、学习 Shell Scripts 善用判断式
善用判断式 利用 test 命令的测试功能 我要检查 /dmtsai 是否存在时,使用: [root@www ~]# test -e /dmtsai [root@www ~]# test -e /dm ...
- linux bash shell 判断目录是否为空的函数
#!/bin/sh ##方法一 判断输出字符数统计为0 is_empty_dir(){ |wc -w` } ##方法二 判断输出string为空 #is_empty_dir(){ # ` ] #} t ...
- Linux中的判断式
格式一:test [参数] 判断内容格式二:[ [参数] 判断内容 ] 说明: a.格式二可以认为是格式一的缩写 b.格式二里中括号和内容之间要有空格 基于文件的判断-d 判断文件是否存在,并且是目录 ...
- 第十三章、学习 Shell Scripts 条件判断式
利用 if .... then 单层.简单条件判断式 if [ 条件判断式 ]; then 当条件判断式成立时,可以进行的命令工作内容: fi <==将 if 反过来写,就成为 fi !结束 i ...
- Linux if 命令判断条件总结
Linux if 命令判断条件总结Linux if命令 关于文件属性的判断式 -a 如果文件存在 -b 如果文件存在,且该文件是区域设备文件 -c 当file存在并且是字符设备文件时返回真 -d 当p ...
- Linux Bash Script conditions
Linux Bash Script conditions shell 编程之条件判断 条件判断式语句.单分支 if 语句.双分支 if 语句.多分支 if 语句.case 语句 refs http:/ ...
- 【重点】Shell入门教程:流程控制(3)条件判断式的真假值
之前曾提到,在Bash中什么是真什么是假,是以命令的结束状态是否为0来做判断.传回0,即为真:传回非0,即为假. 在Bash中,这种可以影响程序流程的式子,称为条件判断式.判断式的操作数分成“单元”及 ...
随机推荐
- SHELL里执行HIVE导出文件处理成CSV文件
#!/bin/bash #用途: #.当前目录的txt文件批量转csv #.制表符转逗号分隔符 #.NULL去除 #.删除WARN警告 for i in `ls ./*.txt` do sed -e ...
- 让CPU使用率正弦变化
网络上流传一个面试题,说如何编程让CPU的使用率按照正弦方式变化 代码如下(运行环境Linux): #include <stdio.h> #include <stdlib.h> ...
- java入门---windows和Linux,UNIX,Solaris,FreeBSD下开发环境配置
首先来看Windows下的操作.我们需要下载java开发工具包JDK.下载地址:http://www.oracle.com/technetwork/java/javase/downloads/ ...
- DATAGUARD实施文档
DATAGUARD实施文档 一.前期准备及备机安装: 通过获取到的主机信息规划备机数据库安装基础信息:(注:在安装备机时需要尽量保障与主机库信息一致,以下表格中的备机信息为根据主机信息规划的安装信息. ...
- C++11中rvalue references的使用
Rvalue references are a feature of C++ that was added with the C++11 standard. The syntax of an rval ...
- Putty的设置保存
用了好几年都不知道这功能, 以前每次在连接时只能手工更改字符为utf-8,当时在想怎么这么弱呢 后来才知道... 1 字符 Translation下 字体Appearance下 颜色Colours下 ...
- 形象的理解Strong和Weak
Strong Weak
- OpenCV入门:(四:混合两张图片)
1. 原理 对两张图片使用如下公式可以得到两张图片的混合图片, 其中f0(x),f1(x)分别是图片1和图片2同一位置的像素点. 2. OpenCV中的AddWeight函数 函数和参数说明: ) s ...
- python接口测试(二)——配置文件的使用
在接口测试中,有些东西是固定不变的,比如url,若想更改的话就必须每个请求都更改,因此,可以放到配置文件中使用. 1.创建一个.ini的配置文件,如图: 2.读取配件文件中的内容,后续进行引用 #co ...
- 关于缺失值(missing value)的处理---机器学习 Imputer
关于缺失值(missing value)的处理 在sklearn的preprocessing包中包含了对数据集中缺失值的处理,主要是应用Imputer类进行处理. 首先需要说明的是,numpy的数组中 ...