shell 命令
#! /bin/sh 是指此脚本使用/bin/sh来解释执行:#!是特殊的表示符,其后面根的是此解释此脚本的shell的路径。
$bash $表示系统提示符,$ 表示此用户为普通用户,超级用户的提示符是#。
bash是shell的一种,是linux下最常用的一种shell。
$bash的意思是执行一个子shell,此子shell为bash。
要注意,在每个脚本的开头都使用"#!",这意味着告诉你的系统这个文件的执行需要指定一个解释器.在#!之后接着是一个路径名.这个路径名指定了一个解释脚本中命令的程序,这个程序可 以是shell,程序语言或者是任意一个通用程序.这个指定的程序从头开始解释并且执行脚本中 的命令(从#!行下边的一行开始),
注意: #! 后边给出的路径名必须是正确的,否则将会出现一个错误消息,通常是 "Command not found",这将是你运行这个脚本时所得到的唯一结果.
如果在脚本的里边还有一个#!行,那么bash将把它认为是一个一般的注释行.
$# 是传给脚本的参数个数
$0 是脚本本身的名字
$1 是传递给该shell脚本的第一个参数
$2 是传递给该shell脚本的第二个参数
$@ 是传给脚本的所有参数的列表
$* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个
$$ 是脚本运行的当前进程ID号
$? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误
文件表达式
整数变量表达式
if [ -f file ] 如果文件存在
if [ -d ... ] 如果目录存在
if [ -s file ] 如果文件存在且非空
if [ -r file ] 如果文件存在且可读
if [ -w file ] 如果文件存在且可写
if [ -x file ] 如果文件存在且可执行
字符串变量表达式
If [ $a = $b ] 如果string1等于string2 字符串允许使用赋值号做等号
if [ $string1 != $string2 ] 如果string1不等于string2
if [ -n $string ] 如果string 非空(非0),返回0(true)
if [ -z $string ] 如果string 为空
if [ $sting ] 如果string 非空,返回0 (和-n类似)
条件表达式引用变量要带$ -eq -ne -lt -nt只能用于整数,不适用于字符串,字符串等于用赋值号=