if
ファイルを計算し、最新の3つのファイルを除くすべてを削除するステートメントがあります。しかし、このコマンドをリモートで実行したいと思います。条件と組み合わせるに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 で囲まれた場合も同じです。ただし、s $(
)
内にある場合は'
、ローカルシェルによって実行されません。