1

私のスクリプトには、次の3つのコマンドがあります

基本的に、それがやろうとしていることは次のとおりです。

  • 一時ディレクトリに、ファイル名に基づいて特定のファイルへのシンボリックリンクを作成します。
  • 現在の日付に一致するようにシンボリックリンクの名前を変更します
  • シンボリックリンクを一時ディレクトリから適切な場所に移動します

-

find . -type f -name "*${regex}-*" -exec ln -s {} "${DataTempPath}/"{} \;
find "$DataTempPath" -type l | sed -e "p;s/A[0-9]*/A${today}/" | xargs -n2 mv
mv $DataTempPath/* $DataSetPath

これは 15 分ごとに実行される cron ジョブとして挿入されますが、ソース ディレクトリに有効なデータが含まれている場合は問題ありません。ただし、ファイルが含まれていない場合、2番目の find コマンドと mv コマンドでエラーが発生します

私が推測したいのは、最初の行が新しいリンクを作成しない場合、スクリプトの最後の2行を実行しない方法です

4

2 に答える 2

0

コマンドのステータスを確認します。

find . -type f -name "*${regex}-*" -exec ln -s {} "${DataTempPath}/"{} \;
if [[ $? == 0 ]]; then 
 find "$DataTempPath" -type l | sed -e "p;s/A[0-9]*/A${today}/" | xargs -n2 mv
 mv $DataTempPath/* $DataSetPath
fi
于 2013-06-13T13:11:35.223 に答える