Shell
语法
- 变量
-
- 操作
- 赋值与使用
- your_name="qinjx"
- echo $your_name
- echo ${your_name}
- 只读变量 readonly
使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变。 - 删除变量 unset
- 赋值与使用
- 变量作用域
- 1) 局部变量
- 局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。
- 2) 环境变量
- 所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。
- 常 用 的 变 量
-
图略
-
- 3) shell变量
- shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行
- 系统设置好的变量
- 图略
- 图略
- 1) 局部变量
- 字符串
- 单引号双引号
- 拼接字符串
echo $greeting_2 $greeting_3 - 获取字符串长度
echo ${#string} - 提取子字符串
echo ${string:1:4} - 查找子字符串
echo `expr index "$string" io`
- 数组
- 定义数组
- array_name[0]=value0
- array_name=(value0 value1 value2 value3)
- 读取数组
- valuen=${array_name[n]}
- echo ${array_name[@]}
- 获取数组的个数
- length=${#array_name[@]}
- length=${#array_name[*]}
- 获取数组单个元素的长度
lengthn=${#array_name[n]}
- 定义数组
- 操作
-
- 传递参数
-
- $n
n 代表一个数字,1 为执行脚本的第一个参数 - 特殊字符处理参数
-
图略
-
- $n
-
- 运算符
-
- expr expression
用Shell编程计算2*(3 + 4)的值。程序的源代码如下:#!/bin/bashsum=`expr 2 \* \( 3 + 4 \)`echo "The sum is $sum"#end - 算数运算符
- 逻辑运算符&& ||
- 字符串运算符
- =,!=
- -z 检测字符串长度是否为 0
- -n 检测字符串长度是否不为 0
- $ 检测字符串是否为空
- 关系运算符
- 布尔运算符
- 文件测试运算符
-
图略
-
- expr expression
-
- echo命令
-
- 显示普通字符串/转义字符
- 换行\n
- 不换行\c
- 显示变量
#!/bin/shread name echo "$name It is a test" - 显示结果定向至文件
echo "It is a test" > myfile - 原样输出字符串,不进行转义或取变量(用单引号)
- 显示命令执行结果
echo `date` 显示当前世界
- 显示普通字符串/转义字符
-
- printf命令
-
- printf format-string [arguments...]
- format-string: 为格式控制字符串
- arguments: 为参数列表。
- 转义序列
-
图略
-
- printf format-string [arguments...]
-
- test命令
-
- 数值测试
- 字符串测试
- 文件测试
-
- 流程控制
-
- 条件
- if else
- until
- case
- 循环
- for
- while
- 无限循环
- 跳出
- break
break命令允许跳出所有循环(终止执行后面的所有循环) - continue
仅仅跳出当前循环 - case ... esac
- break
- 条件
-
- 函数
-
- 定义一个带有return语句的函数
- 定义一个带有函数参数的函数
- 参数处理
-
- 重定向
-
- 输出重定向
- echo cat ...
- > 覆盖文件原内容
- >> 追加到文件末尾
- 输入重定向
- commond wc ...
- <
- 重定向命令列表
- 输出重定向
-
- 其他
-
- 注释
- # 单行注释
- :<<EOF多行注释EOF
- 文件包含
- Shell 也可以包含外部脚本。这样可以很方便的封装一些公用的代码作为一个独立的文件
- 注释
-
创建及执行
- 创建Shell脚本文件
#!/bin/bashecho "Hello World !"-
- #! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell。
- echo 命令用于向窗口输出文本。
-
- 执行Shell脚本
-
- 将脚本的权限设置为可执行
- 使用命令执行Shell脚本
-
正则表达式
- 基本元字符
-
- 1. 匹配单 .
- 2. 匹配单或多 *
- 3. 行首匹配 ^
- 4. 行尾匹配 $
- 5. 屏蔽一些特殊字符 \
- 6. 匹配范围 []
- 任意数字 [0-9]
- 任意字母 [A-Za-z]
- 任意字母或数字 [A-Za-z0-9]
- 非字母型字符 [^A-Za-z]
- 7. 匹配结果出现的次数 \{\}
-