shell编程里,"$1"是什么意思?如下

发布于2022-01-13 03:33:06
6个回答
admin
网友回答2022-01-13
假设你这个脚本名字叫做 test.sh
执行的时候如下执行
./test.sh file1
那么$1就是file1
admin
网友回答2022-01-13
#/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内容为最新的记录。
自动清理以前不需要的内容。
说实话。。我也只能顺序读出来。没怎么领悟原作者具体想干什么。
admin
网友回答2022-01-13
首先-z表示的是空串。即判断你输入的字符串是否为空。
E_NOARGS=65,就是表示给变量E_NOARGS赋值给65的意思啊。
使用变量是使用$E_NOARGS.
admin
网友回答2022-01-13
如果我没有记错的话,应该是参数1如果是NULL,则会报一个错误,错误是NULL。
admin
网友回答2022-01-13
列出$dataDir目录下的所有内容,找到以“-”开头的文件,并显示它们的行数
admin
网友回答2022-01-13
echo ~/answ.txt
#在用户家目录下 创建一个文件名为answ.txt的文件,并向文件中输入一个空行

echo $S1 $S2 $S3 $S4 $AA $BB ~/answ.txt
#开始不停的往answ.txt这个文件里追加了 变量 $S1 $S2 $S3 $S4 $AA $BB
其中的“A” B是以字符的形式输出。

如果觉得回答符合要求,请及时点采纳。

回到
顶部