[常用]Shell 命令和语句
1. read命令:从键盘读入数据,赋给 变量
# read USERNAME
范例:
2. expr 命令:对整数型变量进行算术运算。
语法:
# expr Num1 + Num2
-
\* 需要转义
/
示例:[conde]
expr $var1 – 5
expr $var1 / $var2
expr $var3 \* 10
expr `expr 5 + 7` / $var4 * 复杂的运算
var4=`expr $var1 / $var2`
[conde]
3. test 语句:变量测试语句,用于测试变量是否相等、是否为空、文件 类型等。
# test 测试条件
测试范围:整数、字符串、文件
a) 整数测试
test INT1 –eq INT2 测试整数是否相等(INT1 is equal to INT2)
test INT1 –ge INT2 测试INT1是否>=INT2 (INT1 is greater than or equal to INT2)
test INT1 –gt INT2 测试INT1是否>INT2(INT1 is greater than INT2)
test INT1 –le INT2 测试INT1是否=<INT2(INT1 is less than or equal to INT2)
test INT1 –lt INT2 测试INT1是否<INT2(INT1 is less than INT2)
test INT1 –ne INT2 测试整数是否不相等(INT1 is not equal to INT2)
b) 字符串测试
test STR1=STR2 测试字符串是否相等
test STR1!=STR2 测试字符串是否不相等
test STR1 测试字符串是否不为空
test –n STR1 测试字符串是否不为空
test –z STR1 测试字符串是否为空
c) 文件测试
test –d FILE 指定文件是否 目录
test –f FILE 指定文件是否常规文件
test –x FILE 指定文件是否可执行
test –r FILE 指定文件是否可读
test –w FILE 指定文件是否可写
test –a FILE 指定文件是否存在
test –s FILE 文件的大小是否非0
d) 变量测试语句:一般不单独使用,一般做为if语句的测试条件,如
if test –d $1 then
…
fi
说明:测试$1是否为目录
简化:变量测试语句可用[ ]进行简化,如test –d $1 等价于 [ -d $1 ]
e) 范例1:判断两个数的大小
代码:
执行:
f) 范例2:测试apache是否启动
代码:
流程控制语句:用于控制shell程序的流程
4. exit语句:退出程序执行,并返回一个返回码,返回码为0表示正常退出,非0表示非正常退出。
语法:exit 0
5. if 语句
if...then...fi
范例:从新启动apache服务
6. if...else 语句
语法:
if 条件1 than
命令1
elif 条件2 then
命令2
else
命令3
fi
其他:多个条件的联合
-a:逻辑与,仅当两个条件都成立时,结果为真。
-o:逻辑或,两个条件只要有一个成立,结果为真。
范例:
7. for ... done 语句
语法:
for 变量 in 名字表
do
命令列表
done
范例:
8. select 语句
语法:
select 变量 in 关键字
do
command 1
…
command n
…
done
说明:select把关键字中的每一项做成类似表单,以交互的方式执行do和done之间的命令。
范例:
执行结果:
9. case...esac 语句
语法:
case 变量 in
字符串1) 命令列表1
;;
...
字符串n) 命令列表n
;;
esac
范例1:
执行结果:
范例2:select与case结合使用
执行结果:
10. while 语句
语法:
while 条件
do
命令
done
范例:
11. until 语句
语法:
until 条件
do
命令
done
说明:until类似while循环,不同的是until是条件返回值为假时才继续执行。
范例1:
范例2:until和read的结合,判断输入的字符,直到正确时循环退出
关于:[ "$input" = "Y" ] || [ "$input" = "y" ],有一个为真,即为真。全部为假时即为假。
1. read命令:从键盘读入数据,赋给 变量
# read USERNAME
范例:
|
2. expr 命令:对整数型变量进行算术运算。
语法:
# expr Num1 + Num2
-
\* 需要转义
/
示例:[conde]
expr $var1 – 5
expr $var1 / $var2
expr $var3 \* 10
expr `expr 5 + 7` / $var4 * 复杂的运算
var4=`expr $var1 / $var2`
[conde]
3. test 语句:变量测试语句,用于测试变量是否相等、是否为空、文件 类型等。
# test 测试条件
测试范围:整数、字符串、文件
a) 整数测试
test INT1 –eq INT2 测试整数是否相等(INT1 is equal to INT2)
test INT1 –ge INT2 测试INT1是否>=INT2 (INT1 is greater than or equal to INT2)
test INT1 –gt INT2 测试INT1是否>INT2(INT1 is greater than INT2)
test INT1 –le INT2 测试INT1是否=<INT2(INT1 is less than or equal to INT2)
test INT1 –lt INT2 测试INT1是否<INT2(INT1 is less than INT2)
test INT1 –ne INT2 测试整数是否不相等(INT1 is not equal to INT2)
b) 字符串测试
test STR1=STR2 测试字符串是否相等
test STR1!=STR2 测试字符串是否不相等
test STR1 测试字符串是否不为空
test –n STR1 测试字符串是否不为空
test –z STR1 测试字符串是否为空
c) 文件测试
test –d FILE 指定文件是否 目录
test –f FILE 指定文件是否常规文件
test –x FILE 指定文件是否可执行
test –r FILE 指定文件是否可读
test –w FILE 指定文件是否可写
test –a FILE 指定文件是否存在
test –s FILE 文件的大小是否非0
d) 变量测试语句:一般不单独使用,一般做为if语句的测试条件,如
if test –d $1 then
…
fi
说明:测试$1是否为目录
简化:变量测试语句可用[ ]进行简化,如test –d $1 等价于 [ -d $1 ]
e) 范例1:判断两个数的大小
代码:
|
执行:
|
f) 范例2:测试apache是否启动
代码:
|
流程控制语句:用于控制shell程序的流程
4. exit语句:退出程序执行,并返回一个返回码,返回码为0表示正常退出,非0表示非正常退出。
语法:exit 0
5. if 语句
if...then...fi
范例:从新启动apache服务
|
6. if...else 语句
语法:
if 条件1 than
命令1
elif 条件2 then
命令2
else
命令3
fi
其他:多个条件的联合
-a:逻辑与,仅当两个条件都成立时,结果为真。
-o:逻辑或,两个条件只要有一个成立,结果为真。
范例:
|
7. for ... done 语句
语法:
for 变量 in 名字表
do
命令列表
done
范例:
|
8. select 语句
语法:
select 变量 in 关键字
do
command 1
…
command n
…
done
说明:select把关键字中的每一项做成类似表单,以交互的方式执行do和done之间的命令。
范例:
|
执行结果:
|
9. case...esac 语句
语法:
case 变量 in
字符串1) 命令列表1
;;
...
字符串n) 命令列表n
;;
esac
范例1:
|
执行结果:
|
范例2:select与case结合使用
|
执行结果:
|
10. while 语句
语法:
while 条件
do
命令
done
范例:
|
11. until 语句
语法:
until 条件
do
命令
done
说明:until类似while循环,不同的是until是条件返回值为假时才继续执行。
范例1:
|
范例2:until和read的结合,判断输入的字符,直到正确时循环退出
|
关于:[ "$input" = "Y" ] || [ "$input" = "y" ],有一个为真,即为真。全部为假时即为假。