一个脚本实例出了点小问题,附源码和执行跟踪trace
发表于 : 2014-04-30 17:11
-------------------------------------下面是源码
#!/bin/bash
#!/bin/sh
LOG_DIR="/var/log"
ROOT_UID=0
LINES=50
E_NOTROOT=67
if [ "$UID"x != "$ROOT_UID"x ]------这里的$UID为什么是null,echo $UID 是1啊
then
echo "Must be root run this script."
exit $E_NOTROOT
fi
if [ -n "$1" ]
then
lines=$1
else
lines=$LINES
fi
cd $LOG_DIR
if [ "$PWD" != "$LOG_DIR" ]
then
echo "can't change to $LOG_DIR"
exit $E_XCD
fi
tail -$lines messages > mesg.temp
cat /dev/null > messages
mv mesg.temp messages
cat /dev/null > wtmp
echo "logs cleaned up."
exit 0
---------------------------------下面是执行trace
+ LOG_DIR=/var/log
+ ROOT_UID=0
+ LINES=50
+ E_NOTROOT=67
+ [ x != 0x ]-------------------这里$UID结果是null
+ echo Must be root run this script.
Must be root run this script.
+ exit 67
#!/bin/bash
#!/bin/sh
LOG_DIR="/var/log"
ROOT_UID=0
LINES=50
E_NOTROOT=67
if [ "$UID"x != "$ROOT_UID"x ]------这里的$UID为什么是null,echo $UID 是1啊
then
echo "Must be root run this script."
exit $E_NOTROOT
fi
if [ -n "$1" ]
then
lines=$1
else
lines=$LINES
fi
cd $LOG_DIR
if [ "$PWD" != "$LOG_DIR" ]
then
echo "can't change to $LOG_DIR"
exit $E_XCD
fi
tail -$lines messages > mesg.temp
cat /dev/null > messages
mv mesg.temp messages
cat /dev/null > wtmp
echo "logs cleaned up."
exit 0
---------------------------------下面是执行trace
+ LOG_DIR=/var/log
+ ROOT_UID=0
+ LINES=50
+ E_NOTROOT=67
+ [ x != 0x ]-------------------这里$UID结果是null
+ echo Must be root run this script.
Must be root run this script.
+ exit 67