我不确定此代码不起作用的原因。它不会去复制命令。 我在命令行上手动成功运行(不含检查) 我不认为我正在执行正确的文件检查?有没有更好,更干净的方式来写这个? 我只是想确保文件存在,如果是这样,请复制它。谢谢。shell脚本帮助 - 检查文件是否存在
#!/bin/bash
if [ $# != 1 ]; then
echo "Usage: getcnf.sh <remote-host>" 2>&1
exit 1
fi
#Declare variables
HOURDATE=`date '+%Y%m%d%H%M'`
STAMP=`date '+%Y%m%d-%H:%M'`
REMOTE_MYCNF=/var/log/mysoft/mysoft.log
BACKUP_DIR=/home/mysql/dev/logs/
export REMOTE_MYCNF HOURDATE STAMP
#Copy file over
echo "Checking for mysoft.log file $REMOTE_MYCNF $STAMP" 2>&1
if [ -f $REMOTE_MYCNF ]; then
echo "File exists lets bring a copy over...." 2>&1
/usr/bin/scp $1:$REMOTE_MYCNF $BACKUP_DIR$1.mysoft.log
echo "END CP" 2>&1
exit 0
else
echo "Unable to get file" 2>&1
exit 0
fi
感谢您的帮助。我以这种方式工作。为什么不喜欢它,如果它的书面是这样的?它是间距吗? '如果[$? = 0];然后' – jdamae 2010-08-31 23:05:07
@jda'''是命令,'[$?'不是 – Anycorn 2010-08-31 23:45:46