2011-07-29 2 views
2

디렉토리의 파일 묶음에 대해 각 줄 수를 가져 오려면 변수에 을 저장하고 추가 작업을 수행하십시오. 쉘을 통해 내가쉘 및 스크립트의 파일 줄 수를 계산하면 다른 결과가 나타납니다.

read NLINES <<< $(cat file | wc -l) 

을한다면 나는 문제없이 그것을 할 수 있지만 스크립트에서 할 경우

#!/bin/bash 
for i in `ls *.dat ` 
do 
    read NLINES <<< $(cat $i | wc -l) 
done 

나는

Syntax error: redirection unexpected 

왜 차이를 얻을? 내가 어떻게 고칠 수 있니?

+1

[ls 출력을 구문 분석하지 마십시오] (http://mywiki.wooledge.org/ParsingLs) – l0b0

답변

3

기본 쉘은 bash가 아니라 다른 것입니다. #!/bin/bash을 그대로두고 #!/bin/sh으로 바꾸십시오. 스크립트가 기본 쉘을 사용하게하십시오.

우분투에서 데비안 스크립트를 사용하려고했을 때이 오류가 발생했습니다. #!/bin/sh은 내 생각과 다른 방식으로 동작합니다 (#!/bin/bash).

+0

예, 그게 다야! – flow

관련 문제