問題:
1.unary operator expected
[root@foundation0 hrr]# ./r3
./r3: line 29: [:/var/log: unary operator expected
Logs cleaned up.
第29行如下:
29 if [ `pwd` !="$LOG_DIR" ]
改成
if [ "$PWD" !="$LOG_DIR" ]
就好了
[root@foundation0 hrr]# cat r3
#!/bin/bash
LOG_DIR=/var/log
ROOT_UID=0
LINES=10
E_XCD=66
E_NOTROOT=67
if [ "$UID" -ne"$ROOT_UID" ]
then
echo "Must be root to run this script."
exit $E_NOTROOT
fi
if [ -n "$1" ] #n是非空的意思
then
lines=$1
else
lines=$LINES
fi
#E_WRONGARGS=65
#case "$1" in
#"")lines=50;;
#*[!0-9]*)echo "Usage:`basename $0`file-to-cleanup";
# exit $E_WRONGARGS;;
#*)lines=$1;;
#esac
cd $LOG_DIR
#if [ "`pwd`"!="$LOG_DIR" ]
if [ "$PWD" !="$LOG_DIR" ]
#如果是在[]裏,最好用$加大寫命令
then
echo "Can't change to $LOG_DIR."
exit $E_XCD
fi
#cd /var/log ||{
# echo "Cannot change to nessary directory.">&2
# exit $E_XCD;
#}
tail -$lines messages > mesg.temp
cat /dev/null > messages
cat /dev/null > wtmp
echo "Logs cleaned up."
mv mesg.temp messages
exit 0
[root@foundation0 hrr]#
轉載:http://blog.csdn.net/goodlixueyong/article/details/6564591