bash脚本编程之四――整数测试及特殊变量

前端之家收集整理的这篇文章主要介绍了bash脚本编程之四――整数测试及特殊变量前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。


bash中常用的条件测试有三种:


测试方法

[ expression ] 命令测试法

[[ expression]] 关键字测试法

test expression

整数测试:

-gt

-le

-ne

-eq

-ge

-lt

例:

INT1=63

INT2=77

[ $INT1 -eq $INT2 ]

[[ $INT1 -eq $NET2 ]]

test $INT1 -eq $NET2


文件测试:

-e FILE:�y�文件是否存在

-f FILE:测试文件是否为普通文件

-d FILE:测试指定路径是否为目录

-r FILE:测试当前用户对指定文件是否有读取的权限

-w FILE:测试当前用户对指定文件是否有写入的权限

-x FILE:测试当前用户对指定文件是否有执行的权限


例:写一个脚本,给定一个文件,如果是普通文件,就显示之;如果是一个目录,亦显示之;否则,显示此为无法识别文件

#!/bin/bash

#

file=/etc/passwd \\定义变量file


if [ ! -e $file ];then \\如果文件不存在

echo "no such file." \\就显示文件不存在

exit 2 \\结束脚本

fi


if [ -f $file ];then \\如果文件存在就判断是不是普通文件

echo "common file." \\是就显示文件为普通文件

elif [ -d $file ];then \\否则就测试是否为目录

echo "Directory." \\是就显示是目录

else \\否则

echo "unknow" \\就显示文法识别

fi


定义脚本退出状态码

提前结束脚本:exit

exit #

如果脚本没有明确定义退出状态码,那么,最后执行的一条命令的退出码既为脚本的退出状态码:


测试脚本是否有语法错误

bash -n +脚本名

逐条显示执行:bash -x +脚本名


bash变量的类型:

本地变量(局部变量)

环境变量

位置变量:$1,$2,.... 引用位置参数 shift:轮替

./filetest,sh /etc/fatab /etc/inittab

$1:/etc/fatab

$2:/etc/inittab

例:能接受一个参数(文件路径),判定:此参数如果是一个存在的文件,就显示“OK”,否则就显示“NO such file.”

#!/bin/bash

#

if [ -e $1 ]; then

echo "OK."

else

echo "NO such file."

fi


例:写一个脚本,给脚本传递两个参数,显示两个参数的和,成积。

#!/bin/bash

if [ $# -lt 2 ];then

echo "Usage:file3.sh ARG1 ARG2"

fi

echo "the sum is $[$1+$2]."

echo "the product is $[$1*$2]"


特殊变量

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

$#:参数的个数

$*:参数列表

$@:参数列表

猜你在找的Bash相关文章