一.构建基本脚本
1.使用多个命令
shell 可以让你将多个命令串起来,一次执行完成。如果要两个命令一起运行,可以把它们放在同一行中,彼此间用分号隔开。
2.创建 shell 脚本文件
1) 要将 shell 命令放到文本文件中,首先需要用文本编辑器来创建一个文件,然后将命令输入到文件中。
2) 在创建 shell 脚本文件时,必须在文件的第一行指定要使用的 shell 。其格式为:#!/bin/bash
3.显示消息
1) 通过 echo 命令可以添加自己的文本消息来告诉脚本用户脚本正在做什么。
2) 不需要使用引号将要显示的文本字符串划定出来。
3) 如果字符串中出现引号,需要在文本中使用另一种引号来划定文本字符串。
4) -n 可以把文本字符串和命令输出显示在同一行中。
5) 应用
- 构建一个脚本文件执行创建新用户、给新用户分组、查看当前登录的用户。
- 运行该脚本文件查看返回结果。
- 为刚刚构建的脚本文件添加输出前的提示。
4.使用变量
1) 变量允许你临时性地将信息存储在 shell 脚本中,以便和脚本中的其他命令一起使用。
2) 在脚本中,可以在环境变量名称之前加上美元符($)来使用这些环境变量。
3) 用户变量区分大小写。
4) 使用等号将值赋给用户变量。在变量、等号和值之间不能出现空格。
5.重定向输入和输出
1) 重定向可以用于输入,也可以用于输出,可以将文件重定向到命令输入。
2) bash shell 用大于号(>)将命令的输出发送到一个文件中。
3) 如果输出文件已经存在了, > 会用新的文件数据覆盖已有文件。
4) 输入重定向符号是小于号(<)。
5) 内联输入重定向(inline input redirection)只需要在命令行中指定用于输入重定向的数据。
6) 内联输入重定向符号是远小于号(<<)。
6.管道
1) 管道连接(piping)的管道符号(|)。直接重定向到另一个命令。
2) 可以在一条命令中使用任意多条管道。
3) 应用
- 查看当前系统的所有用户基本信息,使用重定向命令,将查看结果保存为 username.txt 文件。
- 使用 wc 和重定向命令,查看 username.txt 中的文本行数。
- 查看当前系统的所有用户基本信息,不通过重定向的方式,直接查看文本行数。
7.执行数学运算
1) 在 shell 脚本中有两种途径来进行数学运算:
- expr 命令(expr 部分字符需要转义字符)
- 使用方括号(用美元符和方括号( $[ operation ] )将数学表达式围起来。)
2) 在shell脚本中用方括号执行以下数学运算:
- 100 *(50-45)
- 100/52
- 观察输出结果
3) bash shell 数学运算符只支持整数运算,内建的 bash 计算器 bc 允许在命令行中输入浮点表达式,然后解释并计算该表达式,最后返回结果。
4) -q 选项可以不显示 bash 计算器冗长的欢迎信息。
5) 保留的小数位数是由内建变量 scale 控制的,默认值为 0。
6) 可以用命令替换运行 bc 命令,并将输出赋给一个变量。基本格式:variable=$(echo "options; expression" | bc)
- options 允许你设置变量。如果不止一个变量用分号分开。
- expression 参数定义了通过 bc 执行的数学表达式。
7) 在脚本中使用 bc 进行加减乘除运算,要求保留3位小数。
8.退出脚本
1) shell中运行的每个命令都使用退出状态码(exit status)告诉 shell 它已经运行完毕。
2) 退出状态码是一个 0~255 的整数值,在命令结束运行时由命令传给 shell 。可以捕获这个值并在脚本中使用。
3) Linux 提供了一个专门的变量 $? 来保存上个已执行命令的退出状态码。
4) 默认情况下,shell 脚本会以脚本中的最后一个命令的退出状态码退出。
5) exit 命令允许你在脚本结束时指定一个退出状态码。
6) 应用
- 针对某脚本文件,指定一个退出状态码。
- 运行后,查询其退出状态码,并对其状态进行描述。