2012-08-10 5 views
2

bash 스크립트에서 필자는 Python 스크립트의 매개 변수로 전달하고자하는 값 목록을 반복하고 싶다. 파이썬 스크립트에 전달할 때 $d$minFreq은 수레가 아닙니다. 왜 이런 일이 생길까요?bash : 부동 소수점리스트 반복하기

for d in {0.01, 0.05, 0.1} 
do 
    for i in {1..3} 
    do 
     someString=`python scrpt1.py -f myfile --delta $d --counter $i| tail -1` 
     for minFreq in {0.01, 0.02} 
     do 
      for bValue in {10..12} 
      do 
       python testNEW.py $someString -d $bValue $minFreq 
      done 
     done 
    done 
done 
+0

'someString = $ (python ...)'줄에서 등호 주위의 공백을 없애고 (back-ticks는'$ (...) '로 바꾼다. 진드기는 기껏해야 까다 롭습니다 –

+0

전화가 잘 걸렸습니다. 5 분 전에 똑같은 것을 깨달았습니다! –

답변

8

(여기는 필요 없어) 공백

for d in {0.01,0.05,0.1} 

제거 또는 {} 확장을 사용하지 않는 어느 :

for d in 0.01 0.05 0.1 

동일한 것이 minFreq 루프에 적용된다.

작성된

,

for d in {0.01, 0.05, 0.1} 

가변 d 리터럴 스트링 {0.01,, 0.05,0.1} 값이 할당된다.

+0

확장 공간이 불필요하지만 파이썬 프로세스는 전혀 보이지 않아야한다고 생각합니다. 쉘 변수가 인용되지 않기 때문에 인수 목록을 만들 때 공백을 제거합니다. –

+0

공백은 중괄호 확장을 방지하므로 중괄호와 쉼표는 구문이 아니며 python에 전달 된 문자열에 포함됩니다 – chepner

+0

직각성이 있어야합니다 - 정보를 제공해 주셔서 감사 드리며 실험하지 않았습니다. –