Linux shell编程(二):shell语法

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

如:

[[email protected] ~]# help true
true: true
    Return a successful result.
    Exit Status:
    Always succeeds.
[[email protected] ~]#

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

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

原文地址:http://blog.51cto.com/jlnetc/2082817

时间: 2024-08-13 01:58:09

Linux shell编程(二):shell语法的相关文章

Shell编程(二)-if判断及特殊用法,文件目录属性判断,case判断

[toc] Shell编程(二) 一.shell脚本中的逻辑判断 1.1 判断语句if 1.1.1 格式1: if 判断语句:then command fi 示例1 # vim if01.sh //判断数值大小第一种方法用[],注意前后空格 #!/bin/bash a=5 if [ $a -gt 3 ] then echo ok fi [[email protected] ~]# sh if01.sh ok [ ] -gt:大于, [ ] -lt:小于, [ ] -ge:大于或等于, [ ] -

Linux网络编程(二)

服务套和客户机的信息函数 1.字节转换函数 在网络上面有着许多类型的机器,这些机器在表示数据的字节顺序是不同的, 比如i386芯片是低字节在内存地址的低端,高字节在高端,而alpha芯片却相反. 为了统一起来,在Linux下面,有专门的字节转换函数. unsigned long int htonl(unsigned long int hostlong)     unsigned short int htons(unisgned short int hostshort)     unsigned

Linux学习笔记(二)-Shell教程

1. Shell教程 1. Shell教程 Shell是一个用c语言编写的程序,是用户使用Linux的桥梁.Linux既是一种命令语言,又是一种程序设计语言. Shell是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务.. shell脚本:Shell脚本是一种为了Shell编写的脚本程序. shell环境:Shell编程跟Java,Php编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以. 来自为知笔记(Wiz)

shell编程01—shell基础

01.学习shell编程需要的知识储备 1.vi.vim编辑器的命令,vimrc设置 2.命令基础,100多个命令 3.基础.高端的网络服务,nfs,rsync,inotify,lanmp,sersync,sshkey批量分发管理 02.shell脚本概念 1.什么是shell shell是一个命令解释器,在操作系统的最外层,负责直接与用户对话,将用户的输入解释给操作系统,并输出操作系统各种各样的处理结果,输出到屏幕返回给用户.这种对话方式可与是交互式的(键盘输入命令,可以立即得到shell的回

深入理解Linux文件系统编程(二)

Linux文件系统编程实战 一.创建文件 <span style="font-size:14px;">#include<stdio.h> #include<stdlib.h> #include<sys/stat.h> #include<fcntl.h> //创建文件子函数 void creat_file(char *filename) { int fd; //系统调用描述文件的文件描述符(为非负数) if(fd=creat(f

Linux Shell编程二

以"``"符号包含的内容不是字符串,而是代表这是一个shell命令. echo "today is" `date` 前面是字符,后面`date`表示执行date这个命令. PDATE=`date` 代表定义一个变量PDATE,将date执行完成输出的结果放入变量PDATE中. 以单引号,双引号包含的字符全部会被shell认为是字符串 echo "today is " 'date' #打印 today is date "expr"

Linux Shell编程 条件判断语法

if条件判断语句 单分支 if 条件语句 语法格式: if [条件判断式];then 程序 fi 或者 if [条件判断式] then 程序 fi 在使用单分支 if 条件查询时需要注意几点: if 语句使用 fi 结尾,和一般语言使用大括号结尾不同. [条件判断式] 就是使用 test 命令判断,所以中括号和条件判断式之间必须有空格. then 后面跟符合条件之后执行的程序.可以放在 [] 之后,用";"分隔:也可以换行写入,就不需要";": 示例:通过脚本判断根

linux学习笔记四(shell编程二)

写一个脚本: 计算100以内所有能被3整除的正整数的和: 取模,取余:% 3%2=1 100%55=45 #!/bin/bash let SUM=0 for I in {1..100};do         TMP=$[$I%3]         if [ $TMP -eq 0 ];then                 SUM=$[$SUM+$I]         fi done echo "SUM is $SUM" 写一个脚本: 计算100以内所有奇数的和以及所有偶数的和:分别显

Linux Shell编程实战---Shell中的文本切片技术

Shell中的文本切片技术 在shell中竟然也是有字符串切片这个东西存在的,一直在python中运用切片,下面记录一下shell中切片的用法. (1).替换变量内容中的部分文本 $var="This is a line of text" $ echo${var/line/REPLACED} This is aREPLACED of text" line被替换成REPLACED. (2).指定字符串的起始位置和长度来生成子串 语法如下: ${variable_name:sta

Linux Shell编程实战---shell实现图片下载神器

$ cat dowonload_image.sh  #!/bin/bash ######################################### #图片下载器                              # #script_name: dowonload_image.sh         # #author:weixiaoxin write by 2017-09-20   #      #########################################