Shell 编程(基础)

  Shell 程序一般被称为脚本(Script),它其实就是一组命令的集合。若需更复杂的逻辑与功能,就要引入一些新的概念如:变量、表达式、流程控制和函数等。
  Shell 从任意地方非转义的“#” 字符开始到行末被认为是注释。可执行文件在被读取的时候,内核通过“#!”组合开头识别出这是一个需要运行解释器脚本,并且根据约定将其后的字符串在读到换行以前解释为该脚本需要的解释器所在路径。系统会按照路径调用解释器之后再把整个文本的内容传递给解释器。
  Shell 脚本,一般以“#!/bin/sh”或“#!/bin/bash”开头,表明脚本使用的解释器是 sh(POSIX Shell)或者 bash。

一、字符串与引号

  字符串通常需要使用引号,尤其是其包含若不转义就会引起歧义的字符时。 Shell 下有 3种引号,分别是单引号 (’ ')、双引号 (" ")和反引号 。其中除反引号用于命令外,前两种都用于字符串
  单引号(’ ')
  单引号中的字符串 Shell 不会做任何处理,在需要保持字符串原样不变的时候使用。
  双引号(" ")
  双引号中的字符串 Shell 会进行处理,若其中含有可以求值的部分,会被 Shell 替换为求值的结果,其中包含变量、表达式或命令。
  反引号(’’)
  反引号比较特殊,它一般用来引用一条命令,并且将这个命令的输出结果(输出到标准输出上)作为这个字符串最终的值,作用于符号“$()”相同。

二、特殊字符

  星号()和问号(?)一般用作通配符,可以用来匹配文件名字,“”匹配任意多个字符,“?”匹配任意一个字符。
  冒号(:)表示空命令(NOP no-op),因其返回值恒为 0,在循环条件中,可与 true 命令等价。
  分号(;)是分行符,可以表示一行命令结束,可用分号将多条命令写在一行中。
  美元符($ )用于取值, 根据其后的不同结构,可以取变量或表达式的值。$ {var}和$ var 均是取变量 var 的值,不同之处在于使用大括号({ })可以当变量作为在一个字符串的一部分的时候,变量名不会和字符串内容混淆。所以需要在一个字符串中取变量值的时候,应该尽量使用大括号({ })明确指定那些字符是变量名称的组成部分。 $()可以取一个命令的值作为字符串内容,与反引号含义相同。
  句点(.),等效于 source 命令。
  反斜线()是转义符,是一种引用单个字符的方法,一个具有特殊含义的字符前加上转义符就是告诉 Shell 该字符失去了特殊含义。

猜你喜欢

转载自blog.csdn.net/xxxx123041/article/details/120495431