2013-10-07 1 views
0

bash for 루프에서 프로그램을 컴파일하려고합니다. 명령 줄에서 프로그램을 실행하면 컴파일되지만 qsub를 사용하면 컴파일되지 않습니다.qsub를 사용하여 루프에서 프로그램 컴파일

누락 된 것이 있습니까?

감사합니다,

배쉬 파일

#!/bin/bash 
    #$ -N runTest 
    #$ -m e 
    #$ -r y 

    cd /afs/crc.nd.edu/user/private/NDPICMCC/SAFECODE 

    thisDir="SAFECODE" 
    t=2000 

    originalGUILine="pres = 7.6E1" 
    oldGUILine="$originalGUILine" 
    GUIfile="GUIVars.f90" 

    for ((i = -3 ; i <= 1 ; i=i+1)) 
    do 
     p="7.6E$i" 
     newGUILine="pres = $p" 
     sed -i "s/$oldGUILine/$newGUILine/g" "$GUIfile" 
     oldGUILine="$newGUILine" 

     make clean >& /dev/null 
     make 1D >& /dev/null 
     make 1D 

     ./PressurePIC 

     cp "Anode_ele_eng.csv" "../results/T_${t}_P_${p}_Energies.csv" 
    done 

    sed -i "s/$oldGUILine/$originalGUILine/g" "$GUIfile" 

메이크

CC=ifort 
    OPTIONS = -warn noalign -autodouble 
    PRNG = luxury.f90 
    MAIN = NDPIC1D.v0.f90 GUIVars.f90 GlobalVars.f90 StatisticalDistribution.f90 Emission.f90 
    TODO = ParticleInCell.f90 MonteCarloCollision.f90 Transformations.f90 
    EXE = PressurePIC 

    all: 
    @$(CC) $(PRNG) $(MAIN) $(TODO) -o $(EXE) $(OPTIONS) 

    1D: 
    @$(CC) $(PRNG) $(MAIN) $(TODO) -o $(EXE) $(OPTIONS) 

    2D: 
    @$(CC) $(PRNG) $(MAIN) $(TODO) -o $(EXE) $(OPTIONS) 

    clean: 
    @rm *.mod $(EXE) 

    run: 
    @./$(EXE) 

    info: 
    @echo $(EXE) 

답변

1

나는 당신이 그렇게 문제가 해결되지 않을 수 있습니다 사용하는 qsub 어떤 맛 모르겠어요. ..

스크립트의 시작

#$ -V 

포함

보십시오. qsub을 처리하는 일부 시스템에서는 환경 변수가 사용자 환경에서 스크립트가 실행되는 환경으로 내보내 지도록합니다. 이러한 환경은 일반적으로 동일하지 않습니다.

관련 문제