您的位置:首页 > 运维架构 > Shell

Shell脚本的一些参数

2016-05-14 16:19 387 查看
1.符号

-ne 表示 不等于

另外:

整数比较

-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"))

另外:$?是shell变量,表示"最后一次执行命令"的退出状态.0为成功,非0为失败.

2.常用系统变量:

$0 当前shell程序的名字

$1 ~ $9 命令行上的第一到第九个参数

$# 命令行上的参数个数

$* 命令行上的所有参数

$@ 分别用双引号引用命令行上的所有参数

$$ 当前进程的进程标识号(PID)

$? 上一条命令的退出状态

$! 最后一个后台进程的进程标识号

系统变量只能引用不能修改!

3.判断

if [ -f /bin/bash ]

then echo "/bin/bash is a file"

else echo "/bin/bash is NOT a file"

fi

如果两条命令写在同一行则需要用;号隔开,一行只写一条命令就不需要写;号了

4.循环

for

in

do

done

例子:

for var in con1 con2 con3...

do

程序段

done

就上面的语法结构来说,这个var的变数内容在循环工作的时候:

1 第一次循环时,var的内容是con1;

2 第二次循环时,var的内容是con2;

3 第三次循环时,var的内容是con3;

5.case语句

case分支语句的格式如下:

case $变量名 in

模式1)

命令序列1

;;

模式2)

命令序列2

;;

*)

默认执行的命令序列 ;;

esac

6,-z -n判空操作

Shell脚本中字符串判空:使用-z 字符串长度为0时,为真,-n字符串长度不为0,为真。这两个都不靠谱。

使用下面的方法最可靠:

if [ "x${value}" == "x" ] #为空

then

#为空处理

fi

if [ "x${value}" != "x" ] #不为空

then

#不为空处理

fi

注意 == 和 != 两边要有空格

7.echo 的一些命令

echo -n 不换行输出

$echo -n "123"

$echo "456"

最终输出

123456

而不是

123

456

echo -e 处理特殊字符

若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:

\a 发出警告声;

\b 删除前一个字符;

\c 最后不加上换行符号;

\f 换行但光标仍旧停留在原来的位置;

\n 换行且光标移至行首;

\r 光标移至行首,但不换行;

\t 插入tab;

\v 与\f相同;

\\ 插入\字符;

\nnn 插入nnn(八进制)所代表的ASCII字符;

$echo -e "a\bdddd"

dddd

$echo -e "a\adddd" //输出同时会发出报警声音

adddd
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: