else
then
files1=$(find /root/Documents/actualBACKUPpath/co* -type f | wc -l)
if [ $files1 = 6 ];
then
rm -rv /root/Documents/folder6astmp/co*
cp -v /root/Documents/actualBACKUPpath/co*
/root/Documents/folder6astmp/
rm -rv /root/Documents/actualBACKUPpath/co*
echo other day operation success with actual backup path
else
files2=$(find /root/Documents/folder6astmp/co* -type f | wc -l)
if [ $files2 = 6 ];
then
echo we have nothing to do in tmp directoy success
fi
fi fi
上記のコードを実行すると、次のような出力が得られます。
find: ‘/root/Documents/actualBACKUPpath/co*’: No such file or
directory
we have nothing to do in tmp directory success
期待どおりに正常に動作していますが、なぜステートメントfind:'/root/Documents*
が印刷されるのでしょうか?
答え1
私の推測では、ディレクトリ /root/Documents/actualBACKUPpath にパターン "co*" に一致するファイルが存在せず、cp コマンドがそのことを報告していると思われます。
-vx オプションを指定してスクリプトを実行し、スクリプトが何を実行しているか確認してみましょう。
bash -vx scriptname
または、スクリプトの最初の行のスクリプト宣言に同じオプションを追加します (一時的に)。
#! /bin/bash -vx
. . .