if else
if else-if else 语法格式:
|
|
注意:sh的流程控制不可为空。如果else分支没有语句执行,就不要写这个else。
写成一行(适用于终端命令提示符):
|
|
甚至可以忽略 if 等结构,更加简写:
|
|
独立开发,自由职业
if else-if else 语法格式:
|
|
注意:sh的流程控制不可为空。如果else分支没有语句执行,就不要写这个else。
写成一行(适用于终端命令提示符):
|
|
甚至可以忽略 if 等结构,更加简写:
|
|
printf 命令模仿 C 程序库(library)里的 printf() 程序。标准所定义,因此使用printf的脚本比使用echo移植性好。
printf 使用引用文本或空格分隔的参数,外面可以在printf中使用格式化字符串,还可以制定字符串的宽度、左右对齐方式等。
默认printf不会像 echo 自动添加换行符,我们可以手动添加 \n。
printf 命令的语法:printf format-string [arguments...]
参数说明:format-string
: 为格式控制字符串arguments
: 为参数列表。
实例如下:
|
|
Tutorial: Conditions in bash scripting
原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用。
expr 是一款表达式计算工具,使用它能完成表达式的求值操作。
|
|
注意:
另外,使用 $(()) 可对表达式进行简单计算
|
|
另外,还可使用 let 命令
我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n。n 代表一个数字,0 为执行的文件名(包含路径,如果有路径的话),1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推……
另外,还有几个特殊字符用来处理参数:
$0
为执行的文件名(包含路径,如果有路径的话)$n
n 为1、2、3…获取第1、2、3…个参数$#
传递到脚本的参数个数$*
以一个单字符串显示所有向脚本传递的参数。$@
与$*相同,区别见下面的介绍。$$
脚本运行的当前进程ID号$!
后台运行的最后一个进程的ID号$-
显示Shell使用的当前选项,与set命令功能相同。$?
显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。$*
与 $@
区别: