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. js计算总页数

    前端js取余是a%b 取除数parseInt(a / b) /** * 总页数@param(总条数,每页总条数) */ function pageTotal(rowCount, pageSize) { ...

  2. unity windowEditor平台下鼠标左键控制摄像机的视角

    工作的原因,今天就只写了unity下的鼠标左键控制摄像机的视角左右上下调节:明天,补齐.[有诸多参考,着实是需要多多加油的] using System.Collections; using Syste ...

  3. MSP430F5529学习记录

    个人学习理解,难免有错,望各位大佬指出错误,不胜感激 有些引脚在单片机上没看到,在原理图上可以找得到,说明这些引脚没有引出来 单片机上的引出的引脚是可以外部操作的,有些不必要引出的就直接在单片机内部 ...

  4. mysql 设置、更改、找回密码

    1,新装mysql,添加密码 mysqladmin -u root password NEWPASSWORD 2,记得旧密码,改密码 mysqladmin -u root -p'OLDPASSWORD ...

  5. cookie实现用户登录验证

    cookie实现用户登录验证 1, INSTALLED_APPS中注册app03 2,在主程序中新建映射关系到app3的url中 from django.conf.urls import url,in ...

  6. 微信小程序中的单位

    vw:viewpoint width,视窗宽度,1vw等于视窗宽度的1%. vh:viewpoint height,视窗高度,1vh等于视窗高度的1%. rpx:rpx单位是微信小程序中css的尺寸单 ...

  7. Ubunut操作系统下nDPI的部署及简单使用

    [系统:Ubuntu16.04LTS ] [ nDPI版本:2.5.0] [ 内核:4.15.0-39-generic] 前期准备工作--依赖安装 所需依赖包(前两个ubuntu16已有不需安装) g ...

  8. python之编程风格

    第一:语句和语法 #   表示注释掉的内容 \    续行 print("yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy\ yyyyyyyyyyyyyyyyyyyyy ...

  9. 配置gitlab通过smtp发送邮件

    1. 编辑/etc/gitlab/gitlab.rb文件(加到文件最后面就好了,或者通过搜索找到,新版已有这些配置,只不过都是被注释掉了).以QQ企业邮箱为例: gitlab_rails['smtp_ ...

  10. win7&win10 右键添加 cmd

    修改注册表,位置有 3 个,重复即可: 桌面右键: HKEY_CLASSES_ROOT\Directory\Background\shell 文件夹右键:HKEY_CLASSES_ROOT\Direc ...