script.sh
현재 다음 내용의 파일이 있습니다 .
#!/bin/bash
wget -q http://exemple.com/page1.php;
wget -q http://exemple.com/page2.php;
wget -q http://exemple.com/page3.php;
이전 명령이 완료된 후 명령을 차례로 실행하고 싶습니다. 내가 제대로 하고 있는 걸까? 저는 이전에 Linux를 사용해 본 적이 없어서 검색해 보았지만 해결책을 찾지 못했습니다.
답변1
예, 귀하의 접근 방식이 정확합니다. 쉘 스크립트는 각 명령을 순서대로 실행하고 다음 명령을 시작하기 전에 첫 번째 명령이 완료될 때까지 기다립니다. 명령을 다음과 연결 ;
하거나 별도의 줄에 입력할 수 있습니다.
command1; command2
또는
command1
command2
;
명령이 별도의 줄에 있는 경우에는 필요하지 않습니다. 첫 번째 명령이 성공적으로 종료된 경우에만 두 번째 명령을 실행하도록 선택할 수도 있습니다. 이렇게 하려면 다음과 같이 참여하세요 &&
.
command1 && command2
또는
command1 &&
command2
사용 가능한 다양한 제어 연산자에 대한 자세한 내용은 다음을 참조하세요.여기.
답변2
이와 같이 반복되는 경우에는 다음을 사용하는 것이 좋습니다.for 루프.
for P in {1..3} ; do wget -q http://exemple.com/page${P}.php ; done
이는 명령줄에 적합한 한 줄 버전이지만 스크립트에서도 사용할 수 있습니다. 공백 없이 문자열에 변수를 삽입하려면 변수 이름 주위에 중괄호를 사용해야 합니다.
이 루프는 요청을 순차적으로 보낼 뿐만 아니라 필요할 때 오타에 대한 걱정 없이 조정하고 재사용하기가 더 쉽습니다.