2014-02-25 3 views
1

내 bash 스크립트 중 일부를 눈으로보기 좋게 만들기 위해 매매하고 있습니다. 하자. 나는이 스크립트와 잘 작동한다고 말한다.어떻게 bash 스크립트의 한 줄을 여러 줄로 만들 수 있습니까?

if [ "$PASSWDCHECK" = "<title>401 Authorization Required</title>" ] 
then echo "The Subsubscription password is wrong" ; exit 
else mkdir /home/"$USERNAME"/src && mkdir /opt/logstash && mkdir /etc/snort && mkdir /etc/snort/rules/ 
fi 

더 자세히 만들고 싶지만 실행에 실패했습니다. 내가 뭘 놓치고 있니?

if [ "$PASSWDCHECK" = "<title>401 Authorization Required</title>" ] 
then echo "The Subsubscription password is wrong" ; exit 
else mkdir /home/"$USERNAME"/src \ && 
    mkdir /opt/logstash \ && 
    mkdir /etc/snort \ && 
    mkdir /etc/snort/rules/ \ && 
fi 
+0

백 슬래시가 줄 연속을 나타내는 경우 각 줄마다 && 연산자 뒤에 넣습니다. – mvw

+0

그리고 마지막 \ &&가 너무 많습니다. – mvw

답변

3

당신은하지 &&하기 전에, 각 라인의 끝에서 \을 넣어해야합니다. \ 뒤에 공백이 없어야합니다.

+1

실제로 '&&'연산자로 끝나는 라인은 백 슬래시가 필요 없습니다. – chepner

0
if [ "$PASSWDCHECK" = "<title>401 Authorization Required</title>" ] 
then echo "The Subsubscription password is wrong" ; exit 
else 
    mkdir /home/"$USERNAME"/src && \ 
    mkdir /opt/logstash && \ 
    mkdir /etc/snort && \ 
    mkdir /etc/snort/rules/ 
fi 
+0

iPad에서 자동 교정 기능으로 수정해서는 안됩니다. – mvw

2

은 오랫동안 &&은 행의 마지막 공백이 아닌 토큰으로, 명령은 자동으로 다음 줄에 계속됩니다.

if [ "$PASSWDCHECK" = "<title>401 Authorization Required</title>" ] 
then echo "The Subsubscription password is wrong" ; exit 
else mkdir /home/"$USERNAME"/src && 
    mkdir /opt/logstash && 
    mkdir /etc/snort && 
    mkdir /etc/snort/rules/ 
fi 

&& 목록은 두 명령을 결합, 그래서 파서는 두 번째 명령 전에 줄 바꿈이 폐기되어야 함을 알고있다.

+0

잘 알아두면 더욱 쉽게 읽을 수 있습니다. 감사! –

관련 문제