红联Linux门户
Linux帮助

shell判断困惑

发布时间:2009-10-08 21:49:49来源:红联作者:okhwyy
#!/bin/bash
# rpm-check.sh
# 这个脚本的目的是为了描述, 列表, 和确定是否可以安装一个rpm包.
# 在一个文件中保存输出.
#
# 这个脚本使用一个代码块来展示.

SUCCESS=0
E_NOARGS=65

if [ -z "$1" ]
then
echo "Usage: `basename $0` rpm-file"
exit $E_NOARGS
fi

{
echo
echo "Archive Description:"
rpm -qpi $1 # 查询说明.
echo
echo "Archive Listing:"
rpm -qpl $1 # 查询列表.
echo
rpm -i --test $1 # 查询rpm包是否可以被安装.
if [ "$?" -eq $SUCCESS ]
then
echo "$1 can be installed."
else
echo "$1 cannot be installed."
fi
echo
} > "$1.test" # 把代码块中的所有输出都重定向到文件中.

echo "Results of rpm test in file $1.test"

# 查看rpm的man页来查看rpm的选项.

exit 0


if [ -z "$1" ] //-z $1 什么意思?
exit 65 //什么意思?

请大虾们指点
文章评论

共有 4 条评论

  1. prinse 于 2009-10-11 02:56:34发表:

    呵呵,楼上的……NB

  2. slayerzlvc 于 2009-10-09 18:40:16发表:

    $1 是指第一个命令行参数,本例中应该是一个字符串。[ -z $1 ] 是测判 $1 是否是空串,也就是说命令行中有没有参数.

    exit 65 是脚本返回给调用者的返回值。65 是字母 'A' 的 ASCII 编码,因此调用者可以通过字母 'A' 来测判错误状态是否是没有命令行参数。

  3. Bydrugs 于 2009-10-09 00:11:15发表:

    向楼上的学习

  4. prinse 于 2009-10-08 22:13:40发表:

    $1 是指第一个命令行参数,本例中应该是一个字符串。[ -z $1 ] 是测判 $1 是否是空串,也就是说命令行中有没有参数.

    exit 65 是脚本返回给调用者的返回值。65 是字母 'A' 的 ASCII 编码,因此调用者可以通过字母 'A' 来测判错误状态是否是没有命令行参数。