修正する:

修正する:
/usr/bin/rsync -avh -r /Parent/Folder1 /Destination/

if [ $? == 0 ]
then
   cp /FolderCopyStatus/Success /Result/Success$(basename !:3)
else
   cp /FolderCopyStatus/Failure  /Result/Failure$(basename !:3)
fi

質問1

私はCentオペレーティングシステムで2つのフォルダを同期させるためにrsyncコマンドを使用しています。 rsync コマンドが成功すると、Success ディレクトリのフォルダを Result ディレクトリにコピーし、現在の日付を追加します。これはうまくいきます。

私が望むのは、日付を追加するのではなく成功からコピーしたとき、 フォルダ1上記のコマンドを追加する必要があります。だから何?

質問2

私はcrontabでこのシェルスクリプトを自動化しました。自動化スクリプトのコマンドにFolder1をパラメータとして渡したいと思います。だから方法?

修正する:

 if [ $? == 0 ]
    then
       cp /FolderCopyStatus/Success /Result/Success$(basename !:3)
    else
       cp /FolderCopyStatus/Failure  /Result/Failure$(basename !:3)
    fi

質問: $(basename !:3) はスクリプトでは機能しませんが、 echo $(basename !:3) などの一般的なコマンドでは機能します。

ベストアンサー1

質問1

/usr/bin/rsync -avh -r /Parent/Folder1 /Destination/ if [ $? == 0 ] then cp /FolderCopyStatus/Success /Result/Success$(basename !^) else cp /FolderCopyStatus/Failure /Result/Failure$(date +%F_%R) fi

質問2

スクリプトの最初の行を次のように設定します。

/usr/bin/rsync -avh -r /Parent/$1 /Destination/

次に、スクリプトを呼び出すときにこれを呼び出します。

/path/to/script Folder1

おすすめ記事