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 ...
随机推荐
- Codeforces Beta Round #61 (Div. 2) D. Petya and His Friends 想法
D. Petya and His Friends time limit per test 2 seconds memory limit per test 256 megabytes input sta ...
- 10.0.4_CentOS_120g
对应 VMware Workstation 版本为:“10.0.4 build-2249910”
- ActionContext实现原理
StrutsPrepareAndExecuteFilter [http://www.tuicool.com/articles/NVNbYn] struts2 和 struts1 的一个重要区别就是它进 ...
- hdu 2490 队列优化dp
http://acm.hdu.edu.cn/showproblem.php?pid=2490 Parade Time Limit: 4000/2000 MS (Java/Others) Memo ...
- VMware设置NAT网络及 CentOS 7IP配置
1.打开VMware,选择 编辑, 虚拟网络编辑器 2.默认情况下,VMware8为我们NAT所使用的网卡,选中VMnet8 3.此处设置我们的IP地址,这个随便指定,我这里设置成192.168.2 ...
- ionic2——apk签名
1.签名的意义 为了保证每个应用程序开发商合法ID,防止部分开放商可能通过使用相同的Package Name来混淆替换已经安装的程序,我们需要对我们发布的APK文件进行唯一签名,保证我们每次发布的版本 ...
- QQ发送位置(高德地图)
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout ...
- 22 Python 模块与包
一 模块 1 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1 使用python编 ...
- Java_脚本引擎_02_在Idea中进行Nashorn的Debug
一.前言 本文承接上一节:Java_脚本引擎_01_用法入门 这一节我们来看下怎么在idea中进行Nashorn的Debug ,又或者说怎么在Idea中进行js的Debug 注:idea本身就支持js ...
- hive_学习_00_资源帖
一.官方资料 二.参考资料