1. 条件分支:  (条件表达式的中括号里面 空格不可以省略)

    if [  =  ]
    then
    echo '2 = 2';
    else
    echo '2 != 2';
    fi
    # 上面的代码不使用缩进, 并不会出错, 但不应该这样使用
    # 上面的显然使用的是回车作为命令结束符, 那么如果把上面的几行代码放在一行, if 条件表达式后面必须加上分号, 否则会报错 例如:
    if [ = ]; then echo '2 equal 2'; else echo '2 != 2'; fi
    # 如果非要 写在一行, 标红的分号 必须要写 , 其实只要保持良好的编码习惯, 该缩进就缩进, 换行的换行, 根本不需要考虑上面的问题
  2. read 命令从标准输入中读取一行,并把输入行的每个字段的值指定给 shell 变量. 他和$0  $1 这种的区别是, $0 是在执行文件的时候, 一起传入参数, 如果没传入参数, 那就没有参数了, 而 read 是运行脚本文件后会提示用户输入内容, 获取的是用户输入的内容
  3. ./test.sh 和 bash test.sh 功能相同. 当文件中使用read读取用户输入时, 使用 sh test.sh执行文件会报错, 而使用bash 则不会报错. 有待解决.
    ./test.sh  和 bash test.sh 在子进程中执行,  . ./test.sh  和 source ./test.sh 在当前进程中执行.   使用./test.sh 执行shell脚本文件, 文件必须有执行权限, 但是使用 bash 或者 sh 或者source 或者 . ./test.sh 的时候, 文件可以没有执行权限, 只需要有可读权限即可运行
  4. 开启转义:
    # 使用 -e 开启转义
    echo -e "this is \n is"; #会换行
    echo -e 'that is \n is'; #会换行
    echo "these are \n is"; #不会换行
    echo here \n is; #不会换行
    echo -e `here \n is`; #会报错, here command not found ,反引号是配合命令使用的
    # 结论是: 使用 -e 开启转义, 并且转义字符在引号中,无论单引号还是双引号都可以转义, 不使用 -e 或者转义不在引号中, 都不可以转义, 比如:
    echo ttt '\n' ttt # 这样也是可以换行的
  5. 把显示的结果导入到文件中(不能够追加的)
    #!/bin/sh
    echo "It is a test" > myfile #这个文件无论执行多少次, myfile文件中都只有一行内容

学习shell(二)的更多相关文章

  1. Shell脚本的学习(二)

    Shell脚本的学习(二) 方法: 1) 一个计算器: 2)递归实现打印目录    3)方法调用

  2. 学习笔记:CentOS7学习之二十五:shell中色彩处理和awk使用技巧

    目录 学习笔记:CentOS7学习之二十五:shell中色彩处理和awk使用技巧 25.1 Shell中的色彩处理 25.2 awk基本应用 25.2.1 概念 25.2.2实例演示 25.3 awk ...

  3. 学习笔记:CentOS7学习之二十:shell脚本的基础

    目录 学习笔记:CentOS7学习之二十:shell脚本的基础 20.1 shell 基本语法 20.1.1 什么是shell? 20.1.2 编程语言分类 20.1.3 什么是shell脚本 20. ...

  4. Shell 学习(二)

    目录 Shell 学习(二) 1 设置环境变量 1.1 基本语法 1.2 实践 2 位置参数变量 2.1 介绍 2.2 基本语法 2.3 位置参数变量应用实例 3 预定义变量 3.1 基本介绍 3.2 ...

  5. 学习Shell脚本编程(第2期)_编写修改权限及执行Shell程序的步骤

    编写Shell程序 执行Shell程序 Shell程序有很多类似C语言和其他程序设计语言的特征,但是又没有程序语言那样复杂.Shell程序是指放在一个文件中的一系列Linux命令和实用程序.在执行的时 ...

  6. scrapy爬虫学习系列二:scrapy简单爬虫样例学习

    系列文章列表: scrapy爬虫学习系列一:scrapy爬虫环境的准备:      http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_python_00 ...

  7. Docker学习(二): 镜像的使用与构建

    特别声明: 博文主要是学习过程中的知识整理,以便之后的查阅回顾.部分内容来源于网络(如有摘录未标注请指出).内容如有差错,也欢迎指正! =============系列文章============= 1 ...

  8. Linux学习之二-Linux系统的目录结构

    Linux学习之二-Linux系统的目录结构 在Linux的根目录下,有很多的目录,但是需要记住,对于Linux而言,一切皆文件.因此此处的目录也是文件.用ls / 命令就能看到根目录下的各类不同的目 ...

  9. 鸟哥的Linux私房菜-第10/11/12/13章(vim程序编辑器、学习bash、正则表达式与文件格式化处理、学习Shell Scripts)

    第10章 vim程序编辑器 可以将vim看做vi的进阶版本,vim可以用颜色或底线等方式来显示出一些特殊的信息. 为何要学习vim?因为: a. 所有的 Unix Like 系统都会内建 vi 文书编 ...

随机推荐

  1. 【LOJ】#3120. 「CTS2019 | CTSC2019」珍珠

    LOJ3120 52pts \(N - D >= 2M\)或者\(M = 0\)那么就是\(D^{N}\) 只和数字的奇偶性有关,如果有k个奇数,那么必须满足\(N - k >= 2M\) ...

  2. Servlet简单例子

    一.项目结构 二.index.jsp <%@ page contentType="text/html; charset=utf-8" %> <html> & ...

  3. CSP 通信网络(201709-4)

    问题描述 某国的军队由N个部门组成,为了提高安全性,部门之间建立了M条通路,每条通路只能单向传递信息,即一条从部门a到部门b的通路只能由a向b传递信息.信息可以通过中转的方式进行传递,即如果a能将信息 ...

  4. django 路由层 伪静态网页 虚拟环境 视图层

    路由层 无名分组 有名分组 反向解析 路由分发 名称空间 伪静态网页 虚拟环境 视图层 JsonResponse FBV与CBV 文件上传 项目urls.py下面 from app01 import ...

  5. css 字体库和动画

    @font-face { font-family:'WebSymbols'; src: url('../font/WebSymbols-Regular.otf'); } .icon{ font-fam ...

  6. webmagic学习之路-3:采集安居客经纪人详情页

    这里希望安居客的同行的轻喷!!单纯的做测试,玩玩. 就这么糟践你们的服务器了!!!sorry! 这次学会了webmagic 设置处理的访问HTML返回代码,因为之前一直404的页面process根本都 ...

  7. HBASE学习笔记(一)

    一.数据库OLAP和OLTP简单的介绍比较 1.OLTP:on-line transaction processing在线事务处理,应用在传统关系型数据库比较多,执行日常基本的事务处理,比如数据库记录 ...

  8. electron-vue在npm run build时报错 ⨯ cannot execute cause=fork/exec C:\Users\801\AppData\Local\electron-builder\Cache\winCodeSign\winCodeSign-2.5.0\rcedit-ia32.exe: Access is denied.

    问题描述 在electron-vue执行npm run build时报错,错误如下: ⨯ cannot execute cause=fork/exec C:\Users\801\AppData\Loc ...

  9. Java高并发程序设计学习笔记(七):并行设计模式

    转自:https://blog.csdn.net/dataiyangu/article/details/87123586 什么是设计模式架构模式设计模式代码模式(成例 Idiom)单例模式普通单例假如 ...

  10. 7.Hibernate查询

    一:Hibernate可以使用的查询语言 1.NativeSQL:本地语言(数据库自己的SQL语句) 2.HQL:hibernate自带的查询语句,可以使用HQL语言,转换成具体的方言 3.EJBQL ...