shell

Shebang

shebang表示文本文件中第一行前连个字符#!

1
2
3
4
5
6
histroy  #查看历史记录
-c 清楚记录
-r 恢复记录

!历史id 快速执行历史命令
!! 执行上一条命令

变量

变量赋值等于号不能有空格

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$0                     脚本名称和脚本路径

$n 脚本的第n个参数

$# 脚本参数的总数

$* 所有脚本参数

$@ 所有脚本参数



$? 上次命令的返回码

\$$ 当前脚本的进程号

$! 上一次后台进程的pid

$_ 在此执行前一个脚本的最后变量

bash一些基础命令

echo

1
2
3
4
5
6
7
8
9
10
11
-n 不换行输出

-e 解析字符串中的特殊符号

\n 不换行

\r 回车

\t 制表符

\b 退格

eval 执行多个命令

exec 不创建子进程执行后续命令,且执行完毕后,自动exit

shell 子串

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
${变量}        返回变量值

${#变量} 返回变量长度,字符长度

${变量:start} 返回start数值之后的字符

${变量:start:length} 提取start之后的length个字符

${变量#word} 从变量开头删除最短匹配的word子串

${变量##word} 从变量开头删除最长匹配的word子串

${变量%word} 从变量结尾删除最短匹配的word子串

${变量%%word} 从变量结尾删除最长匹配的word子串

${变量/pattern/string} 用string替换第一个pattern

${变量//pattern/string} 用string替换所有pattern

for循环

1
2
3
4
5
6
7
8
9
10
11
for item in items

do

shell脚本

done



for n in {1..3} // 循环遍历三次

shell拓展变量

1
2
3
4
5
6
7
${name:-word} 如果name变量值为空,返回word字符串,可以被赋值

${name:=word}如果name变量为空,用word替代变量值,且返回其值

${name:?word} 如果name变量为空,返回word,否则返回变量值

${name:+word} 如果name变量为空,什么都不做,否则返回word返回

数值计算

(())

函数

函数名称(){

}