一,常用符号
1.注释符号 #
特殊:在shell命令的#!/bin/bash里的
2. 变量符号 $
$# 是传给脚本的参数个数
$ 0 是脚本本身的名字
$ 1 是传递给该shell脚本的第一个参数
$ 2 是传递给该shell脚本的第二个参数
$@ 是传给脚本的所有参数的列表,代表目标文件(target)
$* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过 9 个
$$ 是脚本运行的当前进程ID号
$? 是显示最后命令的退出状态, 0 表示没有错误,其他表示有错误
3.引号
(1)单引号
被引起的字符全部做普通字符
(2)双引号
引号内的内容,除$、转义符\、倒引号`这三个保留特殊功能,其他字符均做普通字符
(3)倒引号
如果字符串内容是一列命令列用单引号
4.转义符 \
反斜杠是转义符,它能把特殊字符变成普通字符。在某个字符前加反斜杠()能够阻止shell把后面的字符解释为特殊字符
一些正则匹配
\* 匹配“*”字符
\? 匹配“?”字符
\) 匹配“)”字符
5.目录符号
“/”:根目录(在中间使用表示路径)
“~”:用户根目录(用户登录时所在的目录)
“.”:当前目录
“..”:上级目录
6.通配符
“*”可以代表任意长度的任意字符,
“?”代表一个任意字符。
7.管道和重定向
“>”可将结果输出到文件中,该文件原有内容会被删除,
“>>”则将结果附加到文件中,原文件内容不会被删除。
“<”可以改变标准输入。
“|”可将命令的结果输出给另一个命令作为输入
8.连接符号,逗号,;连续分号
“,” 这个符号常运用在运算当中当做"区隔"用途。
“;”当有几个命令要连续执行时,我们可以把它们放在一行内,中间用“;”分开
“;;”专用在 case 的选项,担任 Terminator 的角色。
9.
“!” 通常它代表反逻辑的作用,譬如条件侦测中,用 != 来代表"不等于"
10. 星号和问号
用于文件名扩展
“*” 任意个字符 运算时 代表乘法
“?”一个字
11.各种括号的用法
(1)“()”
- 命令组。括号中的命令将会新开一个子shell顺序执行,所以括号中的
变量不能够被脚本余下的部分使用。括号中多个命令之间用分号隔开,最
后一个命令可以没有分号,各命令和括 号之间不必有空格。
(2)“(())”
只要括号中的运算符、表达式符合C语言运算规则,都可用在$((exp))
中,甚至是三目运算符。(比如for循环)
(3)[]
bash 的内部命令,[和test是等同的。如果我们不用绝对路径指明,通常我们用的都是bash自带的命令.
如 数学计算:var1=$[1 + 5]
if [condition]
then
fi
(4){}
1.使用大括号进行命令分组并不会像进程列表那样创建出子shell
2.函数定义中
function sum{
echo $[ $1 + $2 ]
}
3.扩展正则表达式
POSIX ERE模式
ERE中的花括号允许你为可重复的正则表达式指定一个上限。