我正在尝试将文件从一个目录移动到另一个目录但遇到一些错误,而使用shell脚本我的shell移动文件是 -
cd data
curr=`pwd`
echo $curr
bad_file=`find . -type f -not -name 'dhcp_map_*.csv' -a -type f -not -name 'cmts_map_*csv' -a -type f -not -name 'cmts_dhcp_link_map_*.csv'`
echo $?
#if [ "$?" = "0" ]; then
BAD_FILE_CMTS=$(basename "$bad_file")
echo "Bad File Found for CMTS Please check bad folder"
mv $BAD_FILE ../bad/$BAD_FILE_CMTS.bad
#fi
cd ..
我的主目录结构就像
drwxr-xr-x bad
drwxr-xr-x data
drwxr-xr-x done
drwxr-xr-x log
-rwxr-xr-x file_chk_1.sh
有更多文件,但这些对于这个问题来说足够了!
现在在DATA目录中有3个文件
-rw-rw-r-- cmts_dhcp_link_map_20160303_1.csv
-rw-rw-r-- cmtsmap_20160303_1.csv
-rw-rw-r-- dhcp_map_20160303_1.csv
数据可以是这些文件中的任何内容..
现在我们可以看到文件CMTSMAP_20160303_1.CSV名称错误,因为它应该像CMTS_MAP_20160303_1.CSV,因为这是我在FIND命令中检查的内容。
但是当我运行这个shell时它会给我错误 -
/home/vmsow03qa/domains/vm/tools/New_topology_data_load/data
0
Bad File Found for CMTS Please check bad folder
mv: missing destination file operand after `/bad/cmtsmap_20160303_1.csv.bad'
Try `mv --help' for more information.
我无法弄清楚我在这里做了什么错误这个shell脚本总是在ECHO中打印消息“找到CMTS的错误文件请检查坏文件夹”当那些文件名称正确时。
我运行此脚本之前它工作正常现在我的QA团队说它给了我这个错误:(
请仔细研究一下!
打印消息我就像这样
cd data
curr=`pwd`
echo $curr
bad_file=`find . -type f -not -name 'dhcp_map_*.csv' -a -type f -not -name 'cmts_map_*csv' -a -type f -not -name 'cmts_dhcp_link_map_*.csv'`
echo $?
BAD_FILE_CMTS=$(basename "$bad_file")
mv $BAD_FILE ../bad/$BAD_FILE_CMTS.bad
if [ -f `ls ./../bad/$bad_file.bad` ];
then
echo "bad file exist please check"
fi
cd ..
但如果坏文件夹中有文件,它总是在ECHO中打印消息!!
我想我做得不好:(