早教吧 育儿知识 作业答案 考试题库 百科 知识分享

谁帮我看看这段shell是什么意思吧,尤其这一段if[-n"$1"]#/bin/bashROOTUID=0LINES=50EXCD=86ENOTROOT=87if["$UID"-ne"$ROOTUID"]thenecho"Mustberoottorunthisscript."exit$ENOTROOTfiif[-n"$1"]thenlines=$1elselines=$L

题目详情
谁帮我看看这段shell是什么意思吧,尤其这一段 if [ -n "$1" ]
#/bin/bash
ROOT_UID=0
LINES=50
E_XCD=86
E_NOTROOT=87
if [ "$UID" -ne "$ROOT_UID" ]
then
echo "Must be root to 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 "Cant't change to $LOG_DIR."
exit $E_XCD
fi
tail -n $lines messages > mesg.temp
mv mesg.temp messages
exit 0
▼优质解答
答案和解析
#/bin/bash
ROOT_UID=0
LINES=50
E_XCD=86
E_NOTROOT=87
if [ "$UID" -ne "$ROOT_UID" ]
then
echo "Must be root to run this script."
exit $E_NOTROOT
fi
echo $1
自定义了几个变量外加判断目前用户是否为root..
if [ -n "$1" ]
then
lines=$1
else
lines=$LINES
fi
判断目前的程序的位置参数$1是否非空 非空为真 空为假 非空把$1带入到lines里.如果为空就把上边定义过的$lines带入到lines里.
cd $LOG_DIR
if [ "pwd" !="$LOG_DIR" ]
then
echo "Cant't change to $LOG_DIR."
exit $E_XCD
fi
然后进入 日志目录 这个目录应该是一个环境变量,判断所在目录是否为所定义的目录.
tail -n $lines messages > mesg.temp
mv mesg.temp messages
exit 0
从后显示 messages文件里 第$lines行的内容 写到 mesg.temp里
修改mesg.temp 为messages
退出
最后一句大概意思是一直保持messages内容为最新的记录.
自动清理以前不需要的内容.
说实话.我也只能顺序读出来.没怎么领悟原作者具体想干什么.
看了 谁帮我看看这段shell是什...的网友还看了以下:

地球的资源越来越少,对吧?我发现地球的资源,地底的油要快耗尽了,能量也是,工厂越来越多,人数也越来  2020-05-17 …

阅读大比拼.阅读大比拼.春雨滴答,滴答,下雨了.种子说:“下吧,下吧,我要发芽.”梨树说:“下吧,  2020-05-17 …

阅读大比拼.阅读大比拼.春雨滴答,滴答,下雨了.种子说:“下吧,下吧,我要发芽.”梨树说:“下吧,  2020-05-17 …

这两个省略号分别有什么含义亲爱的爷爷,发发慈悲吧!带我离开这儿回家,回到我们的村子里去吧!我再也受  2020-05-17 …

亲爱的爷爷,发发慈悲吧,带我离开这儿回家,回到我们村子里去吧!我再也受不住了!……我给您跪下了,我  2020-06-29 …

我买你和我帮你买,意思不一样的吧?我买你和我帮你买,意思不一样的吧,对方不会把“我买给你”理解成“  2020-07-11 …

你哥哥有棒球吗?,他没有;我哥哥有两个足球,咱们去找他吧;太棒了!我有一个球拍;我们只能在电视上观看  2020-10-30 …

快乐阅读轻松答.快乐阅读轻松答.下雨啦春雨沙沙.滴答,滴答,下雨啦.种子说:“下吧,下吧,我要发芽!  2020-11-01 …

亲爱的爷爷,发发慈悲吧,带我离开这儿回家,回到我们村子里去吧!我再也受不住了!……我给您跪下了,我会  2020-11-02 …

仿句:等我长到像你那么高时,我就长大了吧我要写作文,我说:爸爸,等我长到像你那么高时,我就长大了吧.  2020-11-11 …