2
有一些,我要检查,如果他们在一个目录中的文件。他们遵循一个标准命名约定除了文件扩展名,所以我想用通配符e.g:无法使用通配符SSH命令
YYYYMM=201403
FILE_LIST=`cat config.txt`
for file in $FILE_LIST
do
FILE=`echo $file | cut -f1 -d"~"`
SEARCH_NAME=$FILE$YYYYMM
ANSWER=`ssh -q [email protected] 'ls /home/to/some/directory/$SEARCH_NAME* | wc -l'`
returnStatus=$?
if [ $ANSWER=1 ]; then
echo "FILE FOUND"
else
echo "FILE NOT FOUND"
fi
done
通配符不工作,如何使它的外壳可见的任何想法?
在您的'ssh'命令中使用双引号,以便该变量得到扩展。 – fedorqui
风格:摆脱使用ALL_CAPS_VARNAMES的习惯 - 您将有一天使用PATH并破坏您的脚本。 –
注意:无论$ ANSWER是什么:'[$ ANSWER = 1]' - 当给定单个参数时,如果参数不为空,则返回“true”。你的意思'[$ ANSWER -ne 0]'周围[命令Bash的变量扩展]的运营商 –