Shell编程进阶 1.6 if判断的几种用法
针对文件和目录的逻辑判断
touch .txt
if [ -f .txt ]; then echo ok;fi
-f 判断1.txt是否是文件且是否存在,成立输出ok
if [-d /tmp/ ]; then echo ok;fi
-d 判断tmp是否是目录且存在,成立输出ok
-r,w,x 是否可读写执行
vim if2.sh
#!/bin/bash
read -p "Please input a number:" n
m=`echo $n|sed 's/[0-9]//g'`
if [ -n "$m" ]
then
echo "The character you input is not a number,please retry."
else
echo $n
fi
read -p 给出提示符,赋值给n
变量m=$n然后$n的0-9用空格代替。
如果$m不是空格
输出 The character you input is not a number,please retry.
否则输出 $n
-z和-n相反
if grep -q '^wangshaojun:' /etc/passwd; then echo "wangshaojun exist"; fi
grep -q 不输出结果,只做判断条件。匹配到即成立。
多个判断条件
if [ -d /tmp/ ] && [ -f .txt ] ; then echo ok;fi
if [ -d /tmp/ ] && [ -f .txt ] && [ -d /usr/ ] ; then echo ok;fi
if [ -d /tmp/ -a -f .txt ] ; then echo ok;fi
-a and
同时成立即输出ok
if [ -d /tmp/ ] || [ -f .txt ] ; then echo ok;fi
if [ -d /tmp/ -o -f .txt ] ; then echo ok;fi
-o or
一个成立即ok
Shell编程进阶 1.6 if判断的几种用法的更多相关文章
- 【转】Shell编程进阶篇(完结)
[转]Shell编程进阶篇(完结) 1.1 for循环语句 在计算机科学中,for循环(英语:for loop)是一种编程语言的迭代陈述,能够让程式码反复的执行. 它跟其他的循环,如while循环,最 ...
- Shell编程进阶篇(完结)
1.1 for循环语句 在计算机科学中,for循环(英语:for loop)是一种编程语言的迭代陈述,能够让程式码反复的执行. 它跟其他的循环,如while循环,最大的不同,是它拥有一个循环计数器,或 ...
- linux shell编程进阶学习(转)
第一节:基础 ls -lh ——可以用户友好的方式看到文件大小 file 文件名 ——查看文件类型 stat 文件名 ——查看文件当前状态 man 命令/函数名 ——查看详细的帮助文档 man中看某 ...
- Shell编程进阶 2.0 shell中断继续退出
break continue exit break 结束本次for循环 写个for循环脚本 vim for2.sh #!/bin/bash ## 5` do echo $i ] then b ...
- Shell编程进阶 1.7 case选择
逻辑判断的格式 vim case.sh #!/bin/bash read -p "please input a number:" n m=$[$n%] case $m in ) e ...
- Shell编程进阶 1.2 shell结构及执行
创建一个shell脚本 mkdir shell vim first.sh #!/bin/bash ##The first test shell script. ##Written by wangsha ...
- Shell编程进阶 2.2 shell数组
给一个字符指定一个数组 怎么显示数组 a= echo $a a=( ) echo $a echo ${a[@]} echo ${a[*]} 指定显示数组中第几个数字 echo ${a[]} echo ...
- Shell编程进阶 2.1 shell函数
函数 vim fun.sh #!/bin/bash function mysum() { sum=$[$+$] echo $sum } a= b= mysum $a $b sh fun.sh 6 可以 ...
- Shell编程进阶 1.9 while循环
while 死循环 vim while.sh #!/bin/bash ## while : do date +%T sleep done : 永久帧 查看时间 3秒循环1次 打印1-10 #!/bin ...
随机推荐
- Jquery Ajax模版
$.ajax({ type: "GET", url: "test.json", data: {username:'tt', content:'tt'}, dat ...
- Mybatis_总结_06_用_插件开发
一.前言 Mybatis采用责任链模式,通过动态代理组织多个插件(拦截器),通过这些插件可以改变Mybatis的默认行为(诸如SQL重写之类的),由于插件会深入到Mybatis的核心,因此在编写自己的 ...
- MyEclipse设置默认的文档注释和背景色设置
- PhotoShop使用指南(1)——动态图gif的制作
第一步:菜单栏 > 窗口 > 工作区 > 动感 第二步:时间轴 > 设置延迟时间 第三步:时间轴 > 设置循环次数 第四步:存储为Web所用格式 Ctrl+Shift+A ...
- 【LeetCode】002 Add Two Numbers
题目: You are given two non-empty linked lists representing two non-negative integers. The digits are ...
- swing之复杂登陆界面的实现
package jiemian; import gonggong.message; import gonggong.messageType; import gonggong.user; import ...
- mysqldump全备份脚本mysqlallbackup.sh
库小,大概16G左右,每天增量很小,不到100M,所以用mysqldump每天全量备份,将备份结果信息发送到email通知DBA. mysqlallbackup.sh :MySQL DataBase ...
- 反射ORM 三层(for oracle)
sql server and oracle 不同之处只在于: 1·参数@和: 2·自增和序列 3·oracle使用了存储过程以获得当前插入数据的ID DAL层的ORM using Oracle.Dat ...
- Java栈,队列,优先队列的使用
1. 栈的使用: import java.util.*; public class Main{ public static void main(String[] args){ Deque<Str ...
- 运行jar应用程序引用其他jar包的三种常用方法(jar命令)
参考:http://blog.csdn.net/wangmuming/article/details/44343017 方法一.使用Extension Classloader来加载 你可以把需要加载的 ...