条件判断语句

test或[],这两是等价的。但用[]这种可能看起来更简洁

必须在[符号和检查条件之间留出空格,而test命令之后也总是应该有一个空格

如果要把test 和then 放一行上,那么必须在test语句和then之间加上分隔符“ ; "

第1种
if test -f /tmp/log.log; then
echo "Yes"
else
echo "No"
fi
第2种
if [ -f /tmp/log.log ]; then
echo "log exists"
fi
字符串比较 结果
str1 = str2 字符串相同为真
str1 != str2 字符串不相同为真
-n string 字符串不为空时,结果为真
-z string 字符串为null(空串),不能值为null的串。结果为真
算术比较 结果
exp1 -eq exp2 两表达式相等,结果为真
exp1 -ne exp2 两表达式不等,结果为真
exp1 -gt exp2 exp1大于exp2,结果为真
exp1 -ge exp2 exp1大于等于exp2,结果为真
exp1 -lt exp2 exp1小于exp2,结果为真
exp1 -le exp2 exp1小于等于exp2,结果为真
! exp1 exp1为假,则结果为真,反之亦然
文件条件测试 结果
-d file 文件是一个目录,结果为真
-e file 文件存在为真,目前更多使用-f file
-f file 文件是普通文件为真
-g file 文件的set-group-id位被设置为真
-r file 文件可读为真
-s file 文件大小不为0为真
-u file 文件的set-user-id位被设置为真
-w file 文件
-x file 文件可执行为真

控制结构(if)

if 条件
then
语句
else
语句
fi 或使用elif多重选择
if 条件
then
语句
elif 条件
语句
else
语句
fi num=1
if [ "$num" -eq 1 ]; then
echo 1
elif [ "$num" -eq 2 ]; then
echo 2
else
echo 3
fi
exit 0

for语句

for variable in values;
do
语句
done #! /bin/bash
for i in $(ls /tmp);do
ls '/tmp/'$i
done
exit 0

while语句

while 条件 do;
语句
done

until语句

和whle相似,不过它是反复执行直到条件为真,而不是条件为真是反复执行

until 条件
do
语句
done

case语句

每个模式行都以分号;;结尾

case variable in
parttern [| parttern] ...) 语句;;
esac

linux系统shell基础知识入门二的更多相关文章

  1. linux系统shell基础知识入门

    什么是shell shell就是我们常说的命令行程序,它是一个作为用户与Linux系统间接口的程序,它允许用户向操作系统输入要执行的命令.在Linux中安装多个shell是可行的,一般系统有默认的sh ...

  2. 【Linux教程】Linux系统零基础编程入门,想当大神?这些你都要学

    ✍ 文件和文件系统 文件是Linux系统中最重要的抽象,大多数情况下你可以把linux系统中的任何东西都理解为文件,很多的交互操作其实都是通过文件的读写来实现的. 文件描述符 在Linux内核中,文件 ...

  3. Linux Shell 基础知识(二)

    1.本文知识结构 2.文件的查询与检索 2.1. cd 目录切换 找到文件/目录位置:cd 切换到上一个工作目录: cd - 切换到home目录: cd or cd ~ 显示当前路径: pwd 更改当 ...

  4. Linux系统网络基础知识及配置

    一:DNS(domain name system)简介 DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而 ...

  5. Shell基础知识(二)

    对于一个shell脚本来说,第一行是 "#!/bin/bash",这条命令中的 "#!" 告诉系统该用哪一款解释器来对该脚本进行解释,后面的"/bin ...

  6. UNIX SHELL基础知识总结(二)

    1. vim,vi及ex的关系 vim不需要安装,vi为ex的“Visual Mode”,Vim是vi的高级版本: 2. Unix Shell 快捷键 Ctrl+a/e将光标定位到 命令的头/尾 Ct ...

  7. Linux基础知识入门

    [Linux基础]Linux基础知识入门及常见命令.   前言:最近刚安装了Linux系统, 所以学了一些最基本的操作, 在这里把自己总结的笔记记录在这里. 1,V8:192.168.40.10V1: ...

  8. Linux shell基础知识(上)

    Linux shell基础知识(上) 目录 一.shell介绍 二.命令历史 三.命令补全和别名 四.通配符 五.输入输出重定向 六.管道符和作业控制 七.shell变量 八.环境变量配置文件 九.b ...

  9. Linux Shell 基础知识(一)

    1. 本文知识结构 2. shell 基础知识 2.1 shell 简单介绍 ​ GNU bash shell 能提供对 Linux 系统的交互式访问,一般来说,使用快捷键 Ctrl + Alt + ...

随机推荐

  1. static、const、extern等关键字

    static 参考:https://blog.csdn.net/guotianqing/article/details/79828100 http://c.biancheng.net/view/222 ...

  2. SQL之单表与多表查询

    DML语句使用 source  路径  :把SQL脚本导入到数据库中 查询语句类型:[简单查询|多表查询|子查询] 投影:select    字段名,字段名   from   表名   where   ...

  3. Confluence 6.9.0 安装

    平台环境:centos 7.6 数据库版本:mysql-5.7.26,提前安装好,安装步骤略. 软件版本:Confluence6.9.0 所需软件:提前下载到本地电脑 atlassian-conflu ...

  4. MAC自动化环境搭建

    UI自动化环境搭建 第一阶段:配置appium环境硬件配置mac系统电脑 java环境sunjiedeMacBook-Air:~ vicent$ java -versionjava version & ...

  5. 201871010133-赵永军《面向对象程序设计(java)》第八周学习总结

    201871010133-赵永军<面向对象程序设计(java)>第八周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这 ...

  6. 多线程(五)多线程同步_Event事件

    事件和互斥体同样属于内核同步对象,它和互斥体以及临界区在功能上有以下区别 前面的互斥体和临界区主要作用在于确保控制多个线程之间对共享资源访问,保证共享资源的完整性 事件主要作用是通知其它线程一个操作己 ...

  7. day37_8_21表的查询

    一.语法 表的查询一般使用select关键字,配合where筛选.顺序如下: # 先后顺序 from where select 二.where约束条件 首先先建立表: create table emp ...

  8. 【Android】从Eclipse到AndroidStudio的工程迁移

    1.新建Android Studio的代码目录 2.打开AS,选择File---->New---->Import Project 3.在弹出的对话框选择Eclispe代码目录 4.选择Ec ...

  9. django settings实现原理及自定义项目settings配置

    基于django 中的settings实现原理,实现自己项目配置文件的可插拔式设计 ##首先说一下django中settings.py中的实现原理 ''' 应该明确一点,django暴露给用户一个自定 ...

  10. 数论问题(1) : poj 1061

    最近,本人发现了一个新网站poj(不算新) 当然了,上面的资源很好...... 就是还没搞清楚它的搜索该怎么弄,如果有大佬能教教我怎么弄,请在下方留言 闲话少说,回归我们的正题 题目转自poj 106 ...