shell简单命令
来源:互联网 发布:网络剧受众分析论文 编辑:程序博客网 时间:2024/06/15 07:00
现在请继续在 linux 字符界面下输入 man bash,调出 bash 的帮助页面,然后找到 “shell语法”那一部分,我们就是以这里的描述作为实现的依据。
在 bash帮助的“shell 语法”一节,是这样来定义shell 语法的:
简单命令
简单命令是(可选的)一系列变量赋值, 紧接着是空白字符分隔的词和重定向符号, 最后以一个控制操作符结束. 第一个词指明了要执行的命令, 它被作为第 0 个参数. 其余词被作为这个命令的参数.
这个定义可以这样来理解:
1、 可以有变量赋值,例如
a=10 b=20 exporta b
2、 “词”是以空白字符分隔开的,空白字符包括制表符(tab)和空格,例如:
ls /tmp
就是两个词,一个 ls,一个 /tmp
3、可以出现重定向符号,重定向符号是“>”和“<”,例如:
echo “hello world”> /tmp/log
4、 简单命令结束于控制操作符,控制操作符包括:
|| & && ; ;; ( ) | <newline>
例如,用户输入:
ls /tmp
用户最后敲的回车键就是控制操作符 newline,表示要结束这个简单命令。
如果用户输入:
echo“100” ; echo “200”
那么这是两个简单命令,第一个结束于“;”,第二个结束于newline。
5、 简单命令的第一个词是要执行的命令,其余的词都是这个命令的参数,例如:
echo “hello world” echo
第一个echo 是命令,第二个词“hello world”是参数1,第三个词 echo 是参数2,而不再作为一个命令了。
简单命令是 shell 语法中最小的命令,通过简单命令的组合,又可以得到管道命令和列表命令。
l 管道(命令)
管道是一个或多个简单命令的序列,两个简单命令之间通过管道符号(“|”)来分隔
例如
echo “hello world” | wc–l
就是一个管道,它由两个简单命令组成,两个简单命令之间用管道符号分隔开。
我们可以看到,管道符号“|”也是属于上面提到的控制操作符。
根据这个定义,一个简单命令也同时是一个管道。
管道的作用是把它前面的那个简单命令的输出作为后面那个简单命令的输入,就上面这个例子来说:
echo “helloworld” 本来是要在标准输出(屏幕)上打印 “helloworld” 的,但是管道现在不让结果输出到屏幕上,而是“流”到 wc–l 这个简单命令,wc –l 就把“流”过来的数据作为它的标准输入进行计算,从而统计出结果是 1 行。
关于管道更详细的内容,我们在后面具体实现管道的时候再说明。
l 列表(命令):
列表是一个或多个管道组成的序列,两个管道之间用操作符 ;, &,&&, 或 || 分隔。我们看到,这几个操作符都属于控制操作符。
例如
echo “hello world”| wc –l ; echo “nice to meet you”
就是一个列表,它由两个管道组成,管道之间用分号(;)隔开
分号这种控制操作符仅仅表示一种执行上的先后顺序。
l 复合命令
这个定义比较复杂,实现起来也有相当难度,在咱们这个示例程序中,就不实现了。
以上是 shell 语法规范的定义,我们的 shell 程序就是要以此规范为依据,实现对简单命令、管道和列表的解释。对于列表中的控制操作符,我们只支持分号(;),其它的留给读者自己来实现。
- shell 简单操作命令
- shell命令简单学习
- Shell 简单命令
- shell简单命令
- shell简单命令
- 简单的Shell命令
- 简单的Bash Shell命令
- 简单shell 命令重定向
- 常用简单linux shell命令
- Shell 简单的WEB命令
- Hbase shell命令简单使用
- Sentry简单的shell命令
- linux简单命令--shell入门命令
- 编写简单的shell命令解析器
- 简单而常用的shell 命令
- shell基础语法和简单命令入门
- 编写简单的shell命令解析器
- shell 中 cat 命令的简单实现
- JS对象创建常用方式及原理分析
- 使用Mali Graphics Debugger调优Unity程序(Killer示例)
- POJ1182-并查集(拆点??)||带权并查集
- tengxunyun与aliyun的区别
- sql对时间的操作
- shell简单命令
- ”上帝“的数学定义,人工智能智商与等级划分研究最新进展
- 多语言国家与缩写映射表
- 【TensorFlow-windows】(五) CNN(卷积神经网络)对cifar10的识别
- Hi3519V100与Hi3519V101的区别
- 正则表达式
- 打造含有 Mali Graphics Debugger 支持的虚幻引擎应用程序
- 面试题43: n个骰子的点数
- svn更新产生的异常