나는이 if
파일을 계산하고 최신의 세 개의 파일을 제외하고 모두 삭제하는 문을. 그러나이 명령을 원격으로 실행하고 싶습니다. 조건 ssh
과 어떻게 결합 할 수 if
있습니까?
나는 이것을 시도했지만 성공하지 못했습니다.
#!/bin/bash
ssh -t test@192.168.94.139 "cd /var/www/test.com/backup ;
if [ $(ls | wc -l) -lt 3 ]
then
echo "Less"
else [ $(ls -t *.tgz|awk 'NR >3'|xargs rm -f) ]
echo "deleted"
fi"
내가 얻은 오류 :
ls : * .tgz에 액세스 할 수 없음 : 해당 파일 또는 디렉토리가 없습니다.
$(
)
명령 의 일부는 명령을 시작하기 전에 로컬 쉘에 의해 실행됩니다 ssh
. 그 사실을 모두하는 경우 $(
)
가에 의해 둘러싸인 때 단독으로뿐만 아니라 의미 "
의. 그러나 $(
)
내부에 있으면 '
로컬 셸에서 실행되지 않습니다.