ฉันมี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
คำสั่ง มันเป็นความจริงทั้งเมื่อ$(
)
ยืนอยู่คนเดียวและเมื่อถูกล้อมรอบด้วย"
s อย่างไรก็ตามถ้า$(
)
อยู่ข้างใน'
มันจะไม่ถูกเรียกใช้งานโดยเชลล์โลคัล