目录
一、shell基础语法
1、Shell echo命令
Shell 的 echo 指令与 PHP 的 echo 指令类似,都是用于字符串的输出。命令格式:
1) 可以使用echo实现更复杂的输出格式控制。
显示普通字符串:
这里的双引号完全可以省略,以下命令与上面实例效果一致:
2)显示转义字符
结果为:
同样,双引号也可以省略
3) 显示变量
read 命令从标准输入中读取一行,并把输入行的每个字段的值指定给 shell 变量
以上代码保存为 test.sh,name 接收标准输入的变量,结果将是:
4) 显示换行
输出结果为:
5)显示不换行
输出结果:
6)显示结果定向至文件
7)原样输出字符串,不进行转义或取变量(用单引号)
输出结果为:
8)显示命令执行结果
注意: 这里使用的是反引号 `, 而不是单引号 '
2、Shell read命令
read命令:读取从键盘输入的数据
其用法为:
options表示选项,如下表所示;
variables表示用来存储数据的变量,可以有一个,也可以有多个。
options和variables都是可选的,如果没有提供变量名,那么读取的数据将存放到环境变量 REPLY 中。
Shell read 命令支持的选项
2.1 实例 1
结果为:
注意,必须在一行内输入所有的值,不能换行,否则只能给第一个变量赋值,后续变量都会赋值失败。
本例还使用了-p选项,该选项会用一段文本来提示用户输入。
2.2 实例2 只读取一个字符
运行结果为:
-n 1表示只读取一个字符。运行脚本后,只要用户输入一个字符,立即读取结束,不用等待用户按下回车键。
printf "\n"语句用来达到换行的效果,否则 echo 的输出结果会和用户输入的内容位于同一行,不容易区分。
2.3 在指定时间内输入密码
这段代码中,我们使用&&组合了多个命令,这些命令会依次执行,并且从整体上作为 if 语句的判断条件,只要其中一个命令执行失败(退出状态为非 0 值),整个判断条件就失败了,后续的命令也就没有必要执行了。
3、Shell printf命令
printf 命令的语法:
参数说明: format-string: 为格式控制字符串, arguments: 为参数列表。
实例:
%s %c %d %f 都是格式替代符,%s 输出一个字符串,%d 整型输出,%c 输出一个字符,%f 输出实数,以小数形式输出。
%-10s 指一个宽度为 10 个字符(- 表示左对齐,没有则表示右对齐),任何字符都会被显示在 10 个字符宽的字符内,如果不足则自动以空格填充,超过也会将内容全部显示出来。
%-4.2f 指格式化为小数,其中 .2 指保留2位小数。
实例:
printf的转义序列:
4、Shell test命令
1) test命令
test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试
数值测试:
2) 实例1:
输出结果: 两个数相等!
代码中的 [ ] 执行基本的算数运算,实例2有讲解。
3) 实例2:
结果为:
result 为: 11
4) 字符串测试
实例:
5)文件测试
实例:
另外,Shell 还提供了与( -a )、或( -o )、非( ! )三个逻辑操作符用于将测试条件连接起来,其优先级为: ! 最高, -a 次之, -o 最低。
例如: