if-then 语句
语法:
其中if后使用[]包裹的形式需要随使用条件进行替换。(符号中填入内容时,内容前后和符号要各空一格,比较符号前后各一个空格)
[[ ]]可进行复杂的字符串和模式匹配
1
2
3
4
5
6
7 [[ 12 -gt 4 ]]
[[ "$var" == "value" ]]
[[ "var" =~ "value" ]]
[[ "var" = "value" ]]
(( ))使用数学符号进行大小比较,支持>,<,>=,<=,==,!=等 C 风格操作符
1 (( 24 > 12 ))
1 | if [ 条件1 ]; then |
case 语句
用于替代if-then的部分语句形式
语法
1 | case $var in |
if-then的形式 || ↑↑ 相等↓ ↓ ||
1 | if [ "$var" = "value" ]; then |
for 循环
语法
1 | for var in item1 item2 item3; do |
C语言风格的循环
1 | ################################################### |
要求:列出文件夹/var/log下的文件,并判断文件的类型↓↓↓↓↓
1 | ################################################### |
while 循环
语法
1 | ################################################## |
until 循环
1 | ################################################## |
IFS 分词规范
IFS指的就是单词分割的规范,原始的默认分割规范为$' \n\t'
1 | lod_ifs="$IFS" # 保存原始的IFS值 |
break 和continue
处理用户输入
1 | bash var.sh value1 value2 value3 |
用户在使用bash运行脚本时可能会输入多个参数,该参数会被默认做标记。
程序名
$0第一个参数
$1第二个参数
$2$#该特殊值可用于对脚本中的变量计数$*$@
1 | =======================test3.sh======================= |
read 获取用户输入
使用read可以读取用户输入并系那个其赋值给变量
1 | reap -p "please input your name:" name |
-r 禁用反斜杠
-p "提示语句" 读取用户输入
-s 静默输入,用户输入时不显示输入内容
-t n 超时时间为n秒
-a 录入数组
输入和输出
| 文件描述符 | 缩写 | 描述 |
|---|---|---|
| 0 | STDIN | 标准输入 |
| 1 | STDOUT | 标准输出 |
| 2 | STDERR | 标准错误 |
1 | exec 1>text.txt # 将标准输出传入至文件text.txt |
1 | /dev/null # 将错误输出指向/dev/null,丢弃错误输出 |
后台运行脚本
1 | bash script.sh & # 在命令后使用`&`符号即代表该命令将会在后台执行 |
函数
创建函数
1 | function function_name { # function_name为函数的名字,语法同python |
创建库
库就是函数的集合,将多个函数写进一个文件并赋予不同的函数名字
图形化界面的构建
此处略过
sed和gawk 用法
过于复杂,略过