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

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

题目详情
谁帮我看看这段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是什...的网友还看了以下: