;
다음과 같은 한 줄 스크립트에서 이는 무엇을 의미합니까?
while true; do sudo -n true; sleep 60; kill -0 '$$' || exit; done 2>/dev/null &
이것은 줄 바꿈 또는 "다음 명령"을 의미합니까?
답변1
명령의 구분 기호입니다. 첫 번째 경우에는 문장의 끝이라고 생각하는 것이 더 좋습니다 while
.
예를 들어 특정 명령이 성공했을 때 반복을 수행하려면 다음과 같이 하면 됩니다.
while test -f /foo; do some_command; done`
세미콜론은 인수의 끝을 표시하는 데 사용됩니다 test
. 그렇지 않으면 do
다른 인수 로 간주됩니다 test
.
그러나 세미콜론 대신 줄 바꿈을 사용할 수 있습니다. 다음은 세미콜론 없이 위의 예와 완전히 동일합니다.
while test -f /foo
do
some_command
done
실제로 bash의 경우 위 명령을 실행한 다음 완료된 후(또는 CTRL+C) 기록으로 돌아가면(위쪽 화살표 키 등) 여러 줄의 명령 대신 세미콜론을 사용하십시오.
if
그렇습니다. 구문은 while
일반적인 쉘 동작과 유사하며 중단됩니다.
나는 개인적으로 구문이 do
이상해 보이기 때문에 항상 이상하다고 생각했습니다. 그러나 당신은 그것에 익숙해 질 것입니다.