다음과 같은 bash 스크립트가 있습니다.
#!/bin/bash -e
egrep "^username" /etc/passwd >/dev/null
if[ $? -eq 0 ]
then
echo "doesn't exist"
fi
이 스크립트는 -e 없이는 실행되지 않습니다. -e
이 스크립트 의 기능 은 무엇입니까 ? 또한 $?
이 맥락에서 무엇을합니까?
@pst :
—
Greg Hewgill 2016 년
-e
는에 설명되어 set
있습니다.
다음을 수행하여 스크립트를 단순화 할 수 있습니다.
—
bollovan
if egrep -q "^username" /etc/passwd ; then echo "doesn't exist" ; fi
if
와 사이에 공백이 없습니다 [
. 이 스크립트는 작동하지 않습니다 와 -e
경우 때문에, grep
다음에서 아무것도 찾을 수없는 -e
스크립트 바로 종료됩니다. 이 없으면 -e
메시지가 거꾸로 표시됩니다. 상태 ( $?
)가 0이면 grep이 사용자를 찾았 음을 의미합니다. 그건 그렇고`grep '^ username :'이어야합니다 (더 긴 이름을 가진 다른 사용자가 있다면?).
윌
—
blong
#/bin/bash -e
과 같은 효과가 #/bin/bash
라인 # 1과 set -e
라인 # 2를?
-e
맨 페이지에는 없습니다 (정말 답변 주소를보고 싶습니다).$?
마지막 종료 코드 (egrep
위에 생성 된 프로세스 의 종료 코드)를 포함합니다 .