루프 함수에 대한 인수로 수학 방정식 전달

루프 함수에 대한 인수로 수학 방정식 전달

매개변수화된 스크립트를 직렬 호출하고 호출할 때마다 백그라운드 작업으로 제출하는 스크립트를 사용하여 여러 작업을 병렬로 실행하고 싶습니다. 이것은 각 호출에서 10,000개의 조합 중 1,000개를 실행하는 무차별 대입 스크립트입니다.

아래는 나의 첫 번째 균열입니다.

#!/bin/bash
for i in $(seq 10)
do
    ./tmp/tmpsky/bd25Par.sh (i*1000-1000) (i*1000) &
done

나는 $1이 0,1000,2000 등으로 평가되고 $2가 1000,2000,3000 등으로 평가되기를 원합니다.

&는 스크립트를 백그라운드 작업으로 제출하는 것입니다. 호출된 모듈은 아래와 같이 seq와 함께 사용하기 위해 $1과 $2를 전달받습니다.

#/bin/bash/
for n in $(seq $1 1 $2)
do
...`

첫 번째 스크립트는 다음과 같이 실패합니다. unexpected token 'i*1000-1000'

내가 뭘 잘못했나요?

답변1

첫 번째 스크립트는 다음과 같이 실패합니다.unexpected token 'i*1000-1000'

내가 뭘 잘못했나요?

명백한 실수는 실제로 $i루프에서 변수를 호출하지 않는다는 것입니다.

for i in $(seq 10)
do
    ./tmp/tmpsky/bd25Par.sh (i*1000-1000) (i*1000) &
done

그것은해야한다:

for i in $(seq 10)
do
    ./tmp/tmpsky/bd25Par.sh ($i*1000-1000) ($i*1000) &
done

따라서 $i변수를 사용할 때 사용됩니다. i그 자체로는 작동하지 않습니다.

셸에서 수학을 수행하는 방법은 참고 2를 참조하세요.

관련 정보