shell 语法

shell 执行命令操作

当shell读取输入时,它将执行一系列操作。如果输入表示注释的开头,则shell将忽略注释符号('#')和该行的其余部分。

shell 读取和执行命令时将经过下列操作:

  1. 从一个文件(Shell脚本)中读取它的输入,从作为参数的字符串到 “-c” 调用选项(调用Bash),或者从用户的终端。
  2. 将输入拆分为单词和操作符,遵守所描述的引用规则。这些标记由“元字符”分隔。此步骤执行别名扩展。
  3. 将令牌解析为简单的复合命令。
  4. 执行各种shell扩展,将扩展令牌分解为文件名、命令和参数列表。
  5. 执行任何必要的重定向,并从参数列表中删除重定向操作符及其操作数。
  6. 执行命令
  7. 可选地等待命令完成并收集其退出状态。

引用(Quoting)

引用被用来去除某些字符或单词对shell的特殊意义。引用可用于禁用特殊字符的特殊处理,防止保留字被识别,并防止参数扩展。每个shell元字符对于shell都有特殊的意义,必须引用它来表示自己。

  • 有三种引用机制:转义字符、单引号和双引号。

转义字符

一个非引用的反斜杠“\”是Bash转义字符。它保留下一个字符的文字值。
用途:

  1. 将普通字符转为特殊用途,用于表示不能直接显示的字符,比如后退键,回车键,等。
  2. 用来将特殊意义的字符转换回它原来的意义。

单引号

单引号通常以以'开头以'结尾,常在两个单引号之间存储字符串。单引号不能出现在使用单引号闭合的表达式中,例如:a=' I'm so hot';系统将会报错。可以使用转义字符将单引号转义,例如:a='i\'m so hot';上列语句将不会报错。

双引号

与单引号类似,双引号亦可以用来存储字符串,双引号必须转义才能存在与表达试中,单引号可以之间使用,当双引号内出现" $ "符号时,shell会试图解释该变量或表达式,以$到其后面单词为变量名称。而单引号则不会解释变量和表达式

注释

shell 以“ # ” 为注释符号。常用于shell文件(shell脚本中),当文件某一行出现符号“#”时,“#”后面一直到行尾,将会被shell忽略。

命令的语法

在shell中,命令格式为:命令+参数,命令和参数使用空格分隔,参数和参数也使用空格分隔开来。
如:

echo 1 2 3 4 5

查看命令帮助信息

  1. 使用参数 -h | --help.在shell中大多数命令都支持:命令 --help|-h 来查看命令的使用说明
  2. 使用man命令:man命令可以查看命令的man手册的详细信息。
  3. 使用whatis:whatis用来显示命令的描述

查看shell内置命令(builtin)的使用帮助

使用help命令可以查看内置命令的使用帮助
显示构建命令的简短摘要。如果指定了模式,则在所有命令匹配模式上提供详细的帮助,否则将打印帮助主题列表。

如:

[root@localhost ~]# help true
true: trueReturn a successful result.Exit Status:Always succeeds.
[root@localhost ~]#

使用info命令查看信息格式文档

使用info命令可以查看命令的详细信息文档,如bash,gawk,sed,grep等命令都可以使用info命令查看其详细使用文档。

转载于:https://blog.51cto.com/jlnetc/2082817

Linux shell编程(二):shell语法相关推荐

  1. Linux之shell编程篇-----Shell 函数和Shell 输入/输出重定向

    ​ 最近发现了一个挺厉害的人工智能学习网站,内容通俗易懂,风趣幽默,感兴趣的可以点击此链接进行查看:床长人工智能教程 废话不多说,请看正文! ​ Shell 函数 1. 自定义函数 linux she ...

  2. shell编程-初始shell及变量

    shell编程 初始shell 程序 语言 编程 ---------------------------------- 语言 自然语言:汉语.英语 计算机语言:c语言.c++.(java php py ...

  3. SHELL编程——初识SHELL编程

    一.什么是SHELL编程? Shell是操作系统的最外层,Shell可以合并编程语言以控制进程和文件,以及启动和控制其他程序.Shell通过提示您输入,向操作系统解释该输出,然后处理来自操作系统的任何 ...

  4. Shell编程基础---shell的结构、执行及变量

    2019独角兽企业重金招聘Python工程师标准>>> 本文索引: shell脚本介绍 shell脚本结构和执行 date命令用法 shell脚本中的变量 shell脚本介绍 she ...

  5. Linux 串口编程二 深入了解 termios

    前言 这一系列串口编程重点在应用层编程,但是在讲解原理与相关概念时需要对驱动框架有个基础的认识.如果只是浅尝辄止,以后在遇到串口驱动与应用层程序调试难免遇到瓶颈.关于 tty驱动架构参见我的其他博客: ...

  6. shell编程(八) : [shell基础] 处理用户输入

    接上一篇文章shell编程(七) : [shell基础] 使用结构化命令 目录 3.3 处理用户输入 3.3.1 命令行参数 1.位置参数 2.对参数进行测试 3.3.2 特殊参数变量 1.参数个数 ...

  7. linux网络编程二:基础socket, bind, listen, accept, connect

    linux网络编程二:基础socket, bind, listen, accept, connect 1. 创建socket #include <sys/types.h>     #inc ...

  8. Shell编程入门-Shell程序设计实例

    Shell编程入门-Shell程序设计实例 1.增加用户账户 编写一个Shell程序addaccount.sh,在系统中增加四个账户,同时设定他们的初始密码为123456,主组群为wl20. ①查看系 ...

  9. Linux:shell编程(shell基本语法)

    参考菜鸟教程:shell教程 目录 什么是shell? shell脚本的执行方式 一.HelloWorld 二.shell中的变量 2.1.定义变量 2.1.1.定义动态变量 2.1.2.删除变量 2 ...

  10. Linux的shell编程(二)

    3. shell程序设计(基础部分) 其实作为命令语言交互式地解释和执行用户输入的命令只是shell功能的一个方面,shell还可以用来进行程序设计,它提供了 定义变量和参数的手段以及丰富的程序控制结 ...

最新文章

  1. 陌陌安全开源了 Java 静态代码安全审计插件
  2. 比较Visual Studio中的两个文件
  3. Ubuntu在终端执行命令时出现的错误
  4. 文本转声音,TTS语音实现
  5. 黑马程序员C语言基础(第八天)复合类型(自定义类型)(结构体)、共用体(联合体)、枚举enum、 typedef
  6. 她是北大“一个人的毕业照”主人公,2010 级古生物专业独苗,十年后转行搞起了 NLP...
  7. 机器视觉:光源基础及选型
  8. navicat 导出 oracle数据 乱码,Navicat Premium下sql导入中文乱码解决方案
  9. 180729 5行命令win10企业版永久激活方法
  10. latex下的实数集R的写法
  11. 在线词云图生成(以WordArt为例)
  12. 高斯勒让德求积公式matlab通用程序,MATLAB软件及高斯勒让德求积公式.doc
  13. 2.1HTML网页之table标签B
  14. 智能客服搭建(2) - MRCP Server ASR插件开发
  15. 网页HTML5制作flex布局骰子,css利用flex布局画骰子的六个面
  16. 基于功能的差异化战略
  17. qt html字体变红,QLineEdit、QLabel字体大小、颜色设置
  18. 安卓流畅度测试方法二:FPS Meter测试安卓帧数
  19. 史上最全的团队文档协作及管理工具盘点,看看哪款适合你
  20. C# 监控笔记本/平板的充电/电源状态

热门文章

  1. 鸿蒙系统画饼,任正非说在三年内华为鸿蒙系统即可媲美苹果!真的不是“画饼”?...
  2. redhat linux创建磁盘分区,redhat6.4 挂载硬盘,创建新分区,删除分区
  3. IDEA 系列安装资料及教程
  4. Poisson Image Editing 泊松融合 matlab代码完整
  5. php控制器面向对象编程,php面向对象编程
  6. win11什么时候发布的_2021年初级会计师考试大纲什么时候发布?
  7. access mysql 同步_使ACCESS数据库保持同步
  8. Apache开启GZIP压缩功能方法
  9. 【转】tf中的padding方式SAME和VALID有什么区别?
  10. HBase解决海量图片存储方案