ex01
예를 들어 (C++ 프로그램)이라는 실행 파일이 있습니다 .
다양한 매개변수를 사용하여 이 프로그램에 대한 호출 집합이 포함된 텍스트 파일이 있습니다.
텍스트 파일은 다음과 같습니다.
./ex01 command1 > ex.dat &
./ex01 command2 >> ex.dat &
./ex01 command3 >> ex.dat &
...
source
이 명령을 사용하여 이 작업을 자동화 할 수 있습니다 .
하지만 나는 두 가지를 동시에 하고 싶다. 어떻게 해야 하나요?
답변1
파일을 가져오는 대신 별도의 셸에서 실행해야 합니다. 이 source
명령은 현재 셸에서 스크립트 내용을 실행합니다.
$ cat script.sh
./ex01 command1 > ex.dat;
./ex01 command1 > ex.dat;
...
$ sh script.sh
...
세미콜론은 필요하지 않습니다.
./ex01 command1 > ex.dat
./ex01 command1 > ex.dat
...
명령을 병렬로 실행하려면 &
각 명령 끝에 앰퍼샌드( )를 추가하세요.
./ex01 command1 > ex.dat &
./ex01 command1 > ex.dat &
...
두 명령 모두 단일 파일에 쓰기 때문에 위의 내용은 문제가 될 수 있습니다. 다른 파일에 써야 합니다.
./ex01 command1 > ex1.dat &
./ex01 command1 > ex2.dat &
...
또는 파일에 추가됩니다.
./ex01 command1 >> ex1.dat &
./ex01 command1 >> ex2.dat &
...
스크립트가 동일한 줄을 계속해서 반복하는 경우 루프를 사용할 수 있습니다.
# Run 10 times
for i in $(seq 1 10) ; do
./ex01 command1 >> ex1.dat &
done
편집하다:매개변수 수가 선형적으로 변경되는 경우 다음과 같은 루프를 사용할 수 있습니다.
# Run 10 times
for i in $(seq 1 10) ; do
./ex01 command$i >> ex.dat &
done