shell脚本的学习:

1.Shell的作用是解释运行用户的命令,用户输入一条命令,Shell就解释运行一条,这样的方式称为交互式(Interactive),Shell还有

一种运行命令的方式称为批处理(Batch),用户事先写一 个Shell脚本(Script),当中有非常多条命令,让Shell一次把这些命令运行完,而

不必一条一条地敲命令。

2.shell变量包含环境变量和本地变量,环境变量能够从父进程传给子进程,printenv可打印出来;本地变量仅仅存在于当前

Shell进程,用set命令能够显示当前Shell进程中定义的全部变量(包含本地变量和环境变量)和函数。

3.变量引用:在Shell中定义或赋值一个变量:VARNAME=value;变量引用的形式为${}, 变量引用的语句大概例如以下:

当中:env | grep xxx 能够查看一个环境变量,export能够讲一个变量导入为环境变量

4.文件名称代换:

通配符 * : 匹配0个或多个随意字符

                      ? : 匹配一个随意字符

                      [若干字符] : 匹配方括号里随意一个字符的一次出现

5.命令替换

` 或 $():由反引號括起来的也是一条命令,Shell先运行该命令,然后将输出结果立马代换到当前命令行中。算术代换$(())

用于算术计算,$(())中的Shell变量取值将转换成整数,$(())中仅仅能用+-*/和()运算符,而且仅仅能做整数运算

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

6.转义字符 \

主要创建了使用‘$’ 和‘ -’作为文件名称的时候非常麻烦,可是我们能够通过例如以下:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

7.‘’和 “”的差别

和C语⾔言不一样,Shell脚本中的单引號和双引號一样都是字符串的界定符,而不是字符的界定符。单引號用于保持引號内全部

字符的字面值,即使引號内的\和回车也不例外, 可是字符串中不能出现单引號;双引號⽤用于保持引號内全部字符的字⾯面值(回车

也不例外),但有些情况除外。

能够參照下例:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

最后我们谈一谈shell是怎么运行的吧:

shell是通过fork/exec去运行的,每次运行一条命令的时候都是通过fork出一个子进程去运行的,而父进程等待子进程运行完才运行的。

所以我能够知道一个非常有趣的现象。我们有例如以下脚本:

#!/bin/bash
pwd
cd ..
pwd

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

这就说明shell会fork子进程去运行命令。只是我们也能够不让shell产生子进程,这是我们能够这样做:

由于 "."是内建命令。它会是shell不产生子进程而去运行。关于内建命令可自己去查找一下,挺多的。

好了,shell脚本的基本符号我介绍完了,确实比較有限。关于其它内容我会在接下来的博客在进行介绍。关于符号的相关知识大家能够

查阅一些资料或參考一些书籍在强化一下,我说的这些知识常见的一些而已。

shell脚本学习笔记(符号)的更多相关文章

  1. shell脚本学习笔记 (流编辑器sed)

    sed意为流编辑器(Stream Editor),在Shell脚本和Makefile中作为过滤器使用很普遍,也就是把前一个程序的输出引入sed的输入,经过一系列编辑命令转换为另一种格式输出. sed不 ...

  2. Shell脚本学习笔记之(自动填充函数模板)

    其实,vii 就是写的一个脚本,跟 vi 没半毛钱关系,只不过借用一下这个名字而已.那这个脚本长什么样呢?look: 下面来详细的解析上面的代码,来看第1行: #!/bin/bash 这是Shell脚 ...

  3. shell脚本学习笔记

    1.判断符号:中括号[ ] [ ]进行数据的判断,例如我想知道HOME这个变量是否为空,[ -z "$HOME" ],或者两个字符串是否相等,[ "$HOME" ...

  4. shell脚本学习笔记 (正則表達式)

    正則表達式一般有三个部分组成,他们各自是:字符类,数量限定符,位置限定符. 规定一些特殊语法表示字符类.数 量限定符和位置关系,然后用这些特殊语法和普通字符一起表示一个模式,这就是正則表達式(Regu ...

  5. linux shell脚本学习笔记一

    一.文件比较运算符-e filename 如果 filename存在,则为真 [ -e /var/log/syslog ]-d filename 如果 filename为目录,则为真 [ -d /tm ...

  6. 学习笔记之Shell脚本学习指南 & sed与awk & 正则表达式

    正则表达式_百度百科 http://baike.baidu.com/link?url=ybgDrN2WQQKN64_gu-diCqdeDqL8LQ-jiQ-ftzzPaNUa9CmgBRDNnyx50 ...

  7. 笔记——shell脚本学习指南

    <shell脚本学习指南>机械工业出版 ISBN 987-7-111-25504-8 第2章 2.4 初级陷阱 1.当今的系统,对#!这一行的长度限制从63到1024个字符都有,尽量不要超 ...

  8. Shell脚本学习指南笔记

    Shell脚本学习指南 作者:Danbo 2015-8-3 脚本编程语言与编译型语言的差异 许多中型.大型的程序都是用编译型语言写的,例如:C.C+.Java等.这类程序只要从源代码(Source C ...

  9. Shell脚本学习 - 运算符

    继续shell脚本学习.上一篇是基本数据类型和语法的总结,这一篇是运算相关的操作. 运算符 bash不支持简单的数学计算,需要依赖其他命令实现. expr可以代为实现. # 表达式一般这么写 ` + ...

随机推荐

  1. 在 fragment 里面调用 findViewById

    public class CompanyListFragment  extends Fragment { private Activity activity;   private ListView c ...

  2. elastic-job详解(五):自定义任务参数

    在elastic-job详解(三):Job的手动触发功能一文中讲到了如何手动触发一个Job,但是我们手动触发的时候常常需要输入一些参数.举个栗子:我们有个日统计报表,每天凌晨统计一次,统计上一天的数据 ...

  3. Hibernate(8)_单向n对n

    1.n-n 的关联必须使用连接表 与1-n映射类似,必须为set集合元素添加 key 子元素,需要指定中间表 2.实体类 Category.java public class Category { p ...

  4. YUV420序列转成图片

    首先声明一点,这里的YUV其实不是YUV,严格来说是YCbCr.这里就先这样称呼YUV吧.本文是关于YUV420格式的视频转成图片序列的. 关于YUV格式的图片,存储如下图所示: 举个例子,一个640 ...

  5. 大数据学习环境搭建(CentOS6.9+Hadoop2.7.3+Hive1.2.1+Hbase1.3.1+Spark2.1.1)

    node1 192.168.1.11 node2 192.168.1.12 node3 192.168.1.13 备注 NameNode Hadoop Y Y 高可用 DateNode Y Y Y R ...

  6. Spring中Mybatis的花样配置 及 原理

    摘自: https://www.jianshu.com/p/fc23c94fc439

  7. OpenCV3 for python3 学习笔记3-----用OpenCV3处理图像一

    本文的内容都与图像处理有关,这时需要修改图像,比如要使用具有艺术性的滤镜.外插(extrapolate)某些部分.分割.粘贴或其他需要的操作. 1.不同色彩空间的的转换 OpenCV有数百种关于在不同 ...

  8. [Algorithm] Fibonacci Sequence - Anatomy of recursion and space complexity analysis

    For Fibonacci Sequence, the space complexity should be the O(logN), which is the height of tree. Che ...

  9. springboot项目logback配置文件示例

    logback-spring.xml <?xml version="1.0" encoding="UTF-8"?> <configuratio ...

  10. Navicat Win 和 Mac 视图类快捷键对比

    Navicat 查询是根据用户需求从数据库提取可读格式的数据,Navicat 提供两个强大的工具与 SQL 查询工作:查询创建工具和查询编辑器,查询创建工具可视觉化地创建查询,查询编辑器可直接编辑查询 ...