;
다음과 같은 한 줄 스크립트에서 의미하는 바 는 무엇입니까 ?
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