2013-03-20 2 views
0

5 개의 스크립트 파일을 통과하는 스크립트를 작성하려고하고 입력으로 t1-5의 내용을 사용하여 을 실행하고 출력을 로그 파일에 추가하지만 doesn은 출력하지 않습니다. 작동하지 않는 것 같습니다. t 변수의 수를 나타내는 변수 i를 증가 시키려고합니다. 내가 그 일을 제대로하고 있니? 그리고이 결과를 리다이렉션하여 모든 결과가 동일한 파일에 추가되는지 확인하십시오.스크립트 파일을 거쳐 로그 파일에 결과 추가하기

t1=`cat t1` 
t2=`cat t2` 
t3=`cat t3` 
t4=`cat t4` 
t5=`cat t5` 

cd .. 
cd tmp 

i=1 

for g in `ls` 
do 
    sh "$g" "t$i" > 0572log 
    i=$((i + 1) 
done 

답변

1

첫째, i=$((i + 1)i=$((i + 1))해야한다.

두 번째로, 덧붙이고 덮어 쓰지 않으려면 > 0572log>> 0572log이어야합니다.

셋째, 스크립트를 두 번 이상 실행하려면 tmp 디렉토리가 아닌 다른 곳 (예 : ../0572log)에 0572log을 넣는 것이 가장 좋습니다. 그렇지 않으면 다음 번에 스크립트를 실행하면 0572log을 실행하려고 시도합니다.

공백이없는 단순한 파일 이름을 사용하는 경우 $gt$i 주위의 따옴표는 필요하지 않습니다.

+0

@shellter : 저는 OP가 스크립트 파일''$ g "'를 쉘'sh'와 함께 사용하고 매개 변수't $ i' 대신'cp $ gt $ i '를 실행하고 싶다고 생각합니다. 출력이 나오지 않는다. 고양이를 뜻 했을까? –

+0

좋아, 나는 $ g가 또 다른 스크립트라는 것을 알지 못했다. 네, 네 말이 맞다. 주석 제거. 도아! – shellter

관련 문제