shell 常用命令

shell array if while for基本用法

#定义数组
array=("10.101.164.138" "10.101.163.38" "10.101.163.30" "10.101.160.81" "10.101.164.132" "10.101.163.13" "10.101.163.34")
array[7]="10.101.164.199"
echo "${array[7]}" #输出数组长度
echo ${#array[@]}
#遍历数组中每个元素
for i in ${array[@]} do echo $cs if [ $? -ne 0 ] then echo "echo fail!!!!" fi done #每1min检查一次filename的文件中是否有"SAFE"关键词
key="SAFE" while (true) do cs_status=`cat filename`
#检查是否包含关键词key
echo "$cs_status" | grep -q "$key" if [ $? -eq 0 ] then
#存在该关键词就输出时间,否则break echo `date` else echo $cs_status; break fi sleep 60 done

其他

读变量
[admin@rs1c04265 /home/admin]
$read atest
i want to eat duck

[admin@rs1c04265 /home/admin]
$echo $atest
i want to eat duck

取消变量
[admin@rs1c04265 /home/admin]
$unset atest

[admin@rs1c04265 /home/admin]
$echo $atest

不指定类型即为字符串
[admin@rs1c04265 /home/admin]
$sum=100+100

[admin@rs1c04265 /home/admin]
$echo $sum
100+100

declare制定类型
[admin@rs1c04265 /home/admin]
$declare -i sum=100+100

[admin@rs1c04265 /home/admin]
$echo $sum
200

让sum变成环境变量
[admin@rs1c04265 /home/admin]
$declare -x sum

[admin@rs1c04265 /home/admin]
$export|grep sum
declare -ix sum="200"

让sum只读
[admin@rs1c04265 /home/admin]
$declare -r sum

[admin@rs1c04265 /home/admin]
$sum=adada
bash: sum: readonly variable

这里可以是-x或+x
[admin@rs1c04265 /home/admin]
$declare -x sum

[admin@rs1c04265 /home/admin]
$declare -p sum
declare -irx sum="200"

env  观察环境变量
export 自定义环境变量
which 查找指令
locale 看linux机器编码,例如utf-8

整数比较

-eq 等于,如:if [ "$a" -eq "$b" ]

-ne 不等于,如:if [ "$a" -ne "$b" ]

-gt 大于,如:if [ "$a" -gt "$b" ]

-ge 大于等于,如:if [ "$a" -ge "$b" ]

-lt 小于,如:if [ "$a" -lt "$b" ]

-le 小于等于,如:if [ "$a" -le "$b" ]

< 小于(需要双括号),如:(("$a" < "$b"))

<= 小于等于(需要双括号),如:(("$a" <= "$b"))

> 大于(需要双括号),如:(("$a" > "$b"))

>= 大于等于(需要双括号),如:(("$a" >= "$b")) 

字符串比较 

= 等于,如:if [ "$a" = "$b" ]

== 等于,如:if [ "$a" == "$b" ],与=等价

 

注意: [[]]和[]中的行为在某些情况下是不同的:

[[ $a == z* ]]           # 如果$a 以"z"开头(模式匹配)那么将为true

[[ $a == "z*" ]]         # 如果$a 等于z*  (字符匹配),那么结果为true

[ $a == z* ]             # File globbing 和word splitting 将会发生

[ "$a" == "z*" ]        # 如果$a 等于z* (字符匹配),那么结果为true

posted @ 2016-02-26 19:29  _sunshine  阅读(443)  评论(0编辑  收藏  举报