그 자리에 세미콜론, 줄바꿈, 앰퍼샌드를 남겨두면 좋겠습니다.필요. 그러나 "올바른" 방법은 무엇입니까? 그것은 단지 스타일/개인 취향의 문제인가요, 아니면 어떤 면에서 다른 것보다 더 나은가요?
while true; do
cmd1
cmd2
cmd3
done
while true; do
cmd1;
cmd2;
cmd3;
done
두 번째는 더 많은 잉크/전자를 사용하지만 간단히 와이어를 연결하면 여전히 작동합니다.
while true; do cmd1; cmd2; cmd3; done
답변1
어휘분석기/파서는 그것들이 전혀 다르다고 생각하지 않습니다.
선을 무작위로 연결하는 것이 결코 아니며 말이 되지 않으므로 실제 문제를 해결하는 것이 아닙니다.
그러므로 모든 차이점은 인간이 인식하는 것입니다.
저는 개인적으로 각 명령이 구문과 관련되지 않는 한 세미콜론 없이 자체 줄에서 명확하게 표시되도록 옹호합니다. 다른 코드에는 쉽게 놓칠 수 있는 오류가 포함될 가능성이 높기 때문입니다. (초보자는 세미콜론 등 의미 없는 요소를 무작위로 흩뿌리게 되고, 초보자의 코드는 버그가 생길 가능성이 높기 때문입니다. 원인과 결과의 관점에서 볼 때, 구문적으로 중요하지도 않고 명확하지도 않은 요소를 코드에 추가하면 이미 존재하는 것 뒤에 숨은 의도가 있기 때문에 분명히 내 두뇌는 이를 명시적으로 무시해야 하며 코드의 실제 문제를 발견할 수 없습니다.)
그러나 이는 순전히 선호 사항일 뿐이며 "Sina Barra 개인 코드 가이드"를 원칙으로 취급하지 않는 한 "올바른" 것은 없습니다.
그러나 대체로 일관성은 "나는 그게 마음에 든다"는 추론보다 우선합니다. 쉘 스크립트를 작성하는 경우 들여쓰기와 일부 제한된 구문 강조 표시 및 검사를 수행하는 편집기를 사용하십시오. 편집기가 자동으로 각 줄 끝에 세미콜론을 추가하거나 줄에 세미콜론이 누락된 것으로 표시하는 경우 좋습니다. 그러나 줄의 1/3이 다른 줄과 다른 규칙을 따르는 경우를 읽는 것보다 더 나쁜 것은 없습니다. 대본의 내용과 논리를 배우기보다는 각 줄의 구조를 다시 배우는 데 독자의 주의를 집중시키세요.