【发布时间】:2014-08-06 05:32:12
【问题描述】:
我有以下代码..
while read copy
do
cp -v $copy | tee -a $LOGFILE
echo $?
if [[ $? -ne 0 ]]
then
echo "Error copying files. Exiting ..." | tee -a $LOGFILE
exit 1
fi
done < copy_new_files.tmp
.. 如果文件因权限被拒绝等错误而无法复制,我希望脚本暂停。
脚本的输出没有产生关于权限被拒绝错误的错误代码..
+ read copy
+ cp -v acts035.fmt /home/test/gp/efin/source/pl/acts035.fmt
cp: cannot create regular file `/home/test/gp/efin/source/pl/acts035.fmt': Permission denied
+ tee -a /home/test/gp/efin/fixes/12345/efin_fix_copy_12345.log
`acts035.fmt' -> `/home/test/gp/efin/source/pl/acts035.fmt'
+ echo 0
0
如果出现错误,如何让脚本暂停?
非常感谢。
【问题讨论】:
-
这个
Permission denied表明你没有写入日志文件的权限。 -
使用
$?两次看起来很可疑。echo $?改变它。也许您应该在使用之前存储该值。 -
如果您需要在交互模式下暂停,只需编写
exit 1而不是read ppppp之类的行。当你想前进时按回车 -
请发一些来自
copy_new_files.tmp的行。 -
您发布的脚本没有产生您发布的错误消息。您发布的脚本将有
cp抱怨没有足够的参数 - 它至少需要两个,而您只给了它一个。