shell脚本--符号篇
来源:互联网 发布:嫖相 知乎 编辑:程序博客网 时间:2024/05/16 08:56
shell有两种执行模式:
1. 脚本模式
2. 批量模式
shell脚本语言的特点:
1. shell是一门弱类型语言
2. shell是一门解释型语言
3. shell是一门非编译型语言
shell执行脚本:
例子: 建立test.sh文件。
#! /bin/bashlspwdtouch fileecho "hello word" >filecat file
shell脚本中用#表示注释,#处于第一行开头除外,它表示该脚本使用后面的/bin/bash解释执行;
有两种执行方式:
1. 给脚本文件加上可执行权限: chmod +x test.sh
2. 第二种执行方式: /bin/bash test.sh
shell会fork一个子进程并调用exec执行 test.sh这个程序;exec如果要执行的是一个文本文件,
并且第一行用了Shellbang指定了解释器,则用解释器程序的代码段替换当前进程,并且从解释器
的_start开始执行,而这个文本文件被当做命令行参数传递给解释器。
pwdcd ..pwd
这里cd..命令改变的是子shell的PWD,而不会影响到交互式shell
我们可以使用这两种命令使它不会创建子shell,而是直接在交互式shell下执行。
. ./test.shsource ./test.sh
shell变量:
环境变量可以从父进程传递给子进程。
本地变量:只存在与当前shell进程,环境变量是任何进程都具有的概念;而本地变量,
是shell特有的概念。
在shell中定义一个变量
MYENV=hello
注意:等号两边不能有空格,否则会被解释成命令和命令行参数。
变量引用
如果一个变量叫做myenv,用
下面通过两个例子看看它们的区别:
注意:在定义变量时不用$,取变量值时要用$
文件名代换:
通配符*表示:匹配0个或多个字符
?:匹配一个任意字符
[若干字符]:匹配方括号中任意一个字符的一次出现
命令行代换: · $()
算术代换:
(()) 或者$(())
转义字符\
比如创建一个文件名为“$ $”(中间有空格)的文件可以这样
touch \$\ \$
还有一个字符“-”要用它创建文件名也很麻烦有两种方法:
touch ./-filetouch -- -file
单引号和双引号的区别:
和C语言不一样的是,shell脚本中的单引号和双引号一样都是字符串的界定符:
单引号用于保持引号内所有字符的字面值,即使引号内的\和回车也不例外,但是不能出现单引号;
双引号用于保持引号内所有字符的字面值,但是这些例外:
$变量名可以取变量的值,
反引号仍然表示命令替换
\$表示$的字面值
例子:
- shell脚本符号篇
- shell脚本--符号篇
- Shell脚本符号篇
- 【脚本学习】shell脚本入门-符号篇
- SHELL脚本入门篇——符号
- Linux--shell脚本编程之符号篇
- shell脚本 入门 —— 符号篇
- 【Linux】中shell脚本之符号篇
- shell脚本入门 —— 符号篇
- shell脚本入门---$ 相关符号篇
- Shell脚本常用符号
- shell脚本符号小结
- shell脚本中的符号
- shell脚本学习--符号
- Shell脚本的符号
- 【shell脚本】shell的符号
- shell 脚本-符号-基础语法
- shell脚本中的一些符号
- 编写测试用例的方法——等价类划分 (学习笔记)
- shell脚本之符号与命令
- 树莓派问题
- MATLAB作图笔记
- 【Linux】中的NAT技术与代理服务器
- shell脚本--符号篇
- AppDelegate->Application->ApplicationProtocol
- Qt属性动画之QPropertyAnimation
- Javascript中document.execCommand()的用法
- [NOIP模拟]鸭舌
- redis、zookeeper分布式锁的实现
- springMVC对静态资源访问的处理
- DockerXScan——Docker镜像漏洞扫描器
- 命名空间namespace小结