2015-02-03 3 views
0

쉘 스크립팅을 처음 사용합니다. 데이터베이스를 백업 중이며 서버에 최근 8 개의 복사본 만 갖으려고합니다. 다음 if 조건은 그 폴더에 4 개의 파일 만 있다는 사실에도 불구하고 항상 false로 유지됩니다.예상대로 작동하지 않는 경우 단순 조건

numberOfFiles=$(ls | wc -l) 

if [$numberOfFiles -le 9] 
then 
echo $numberOfFiles 
exit 0 
fi 

ls -t | sed -e '1,8d' | xargs -d '\n' rm 

if 조건을 수정하고 해당 폴더에서 파일 수가 9 개 미만인 경우 스크립트를 종료하는 방법은 무엇입니까?

+3

이 줄'if [$ numberOfFiles -le 9]'는 더 많은 공백이 필요합니다. '['는 구문이 아닌 명령입니다. 또한']'가 명령의 마지막 인수가되어야합니다. 그래서 당신은'if [$ numberOfFiles -le 9]' –

+0

@EtanReisner가 필요합니다.저기서 그 오류가있었습니다. 감사. 그게 효과가 있었어. – Prasanna

+0

@EtanReisner 답변을 주시면 동의하겠습니다. – Prasanna

답변

1

이 줄

if [$numberOfFiles -le 9] 

더 많은 공간을 필요로한다.

[은 구문이 아닌 명령입니다. 그것은 ]이 주어진 마지막 인수 할 것을 요구한다, 그래서 당신은 대신

if [ $numberOfFiles -le 9 ] 

이 필요합니다.

관련 문제