我有以下bash脚本:
#!/bin/bash -e
egrep "^username" /etc/passwd >/dev/null
if[ $? -eq 0 ]
then
echo "doesn't exist"
fi
没有-e,该脚本将无法运行。什么是-e这个脚本呢?另外,$?在这种情况下该怎么办?
@pst:
—
Greg Hewgill 2011年
-e记录在下set。
您可以通过执行以下操作来简化脚本:
—
bollovan 2011年
if egrep -q "^username" /etc/passwd ; then echo "doesn't exist" ; fi
您在
—
吉尔(Gilles)“所以,别再邪恶了”,
if和之间缺少空格[。该脚本无法使用 -e,因为如果grep找不到任何内容,则-e该脚本将在此终止。如果不使用-e,则会向后显示消息:状态($?)为0表示grep确实找到了用户。注意,顺便说一句,它应该是`grep'^ username:'(如果还有另一个用户具有更长的名字呢?)。
将
—
blong
#/bin/bash -e具有与#/bin/bash第1 set -e行和第2 行相同的效果?
-e手册页中没有(我真的很想看到一个答案地址)。$?包含最后一个退出代码(egrep上面产生的过程的退出代码)。