bash脚本编程之四——整数测试及特殊变量
2017-09-22 15:35
344 查看
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:測試文件是否存在
-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]"
特殊变量
$?:上一条命令的退出状态码
$#:参数的个数
$*:参数列表
$@:参数列表
测试方法:
[ 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:測試文件是否存在
-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脚本编程之四,整数测试以及特殊变量
- bash编程脚本之二 整数测试及特殊变量
- bash脚本编程之四——整数测试及特殊变量
- bash脚本-表达式,&&,||,if,整数测试,let,文件测试,$特殊变量
- 第六课-第一讲06_01_bash脚本编程之四 整数测试及特殊变量
- 6-1 bash脚本编程之四 整数测试及特殊变量
- shell脚本编程之条件判断,算术运算,整数测试及特殊变量
- bash脚本编程之(3/4)条件判断、算符运算、整数测试、文件测试、特殊变量等笔记
- 整数比较 文件测试 与或非 特殊变量
- Linux基础入门及系统管理01-bash脚本编程之四文件测试及特殊变量19
- Linux初级运维(五)——bash脚本编程(变量、变量类型)
- 高级BASH 编程 笔记(二)BASH必须了解的特殊变量符号
- 菜鸟学Linux 第016篇笔记 bash脚本之文件测试,变量类型
- bash 脚本编程三 变量组成命令与大括号
- bash里的特殊变量
- bash里的特殊变量
- bash里的特殊变量
- 【Linux学习009】脚本编程之变量、条件测试和条件判断
- 玩转Bash脚本:特殊变量
- Bash中的特殊变量和位置参量