Linuxでは、次のような単純なbashスクリプトを使用できます。
#!/bin/bash
# Run code before and after prompting a user to delete a file
my_rm=/bin/rm
file1=$1
# Put the code you want to run pre-deletion here:
echo Running code before deleting ${file1}.
# Delete the file.
read -p "Are you sure you want to delete ${file1} (y/N): " decision
if [ "$decision" == "Y" ] || [ "$decision" == "y" ]; then
echo Deleting ${file1}...
$my_rm $file1
# Put the code you want to run post-deletion here:
echo Running code after deleting ${file1}.
else
echo No file deleted.
fi
# Put any cleanup code here:
echo Running cleanup code whether or not ${file1} was deleted.
exit
スクリプトmy-delete.shを呼び出すと仮定すると、それを実行可能にし、
chmod +x my-delete.sh
そして次のように実行します:
my-delete.sh jobfile.xml
これで、rm
ファイルの削除に使用する場合はrm
、スクリプトのエイリアスを作成できます。
alias rm='/path/to/my-delete.sh'
前の行を〜/ .bashrcまたは〜/ .profileに追加するか、システムを適切な場所に追加して永続化します。
ジョブファイル以外のファイルに対して追加コードを実行したくない場合は、ファイル名またはファイルタイプのテストを追加し、それらのファイルに対してのみ追加コードを実行できます。次のスクリプトは、特別なコードを関数に挿入し、ファイル名をテストして、パターン「jobfile」が含まれているかどうかを確認します。
#!/bin/bash
# Run code before and after prompting a user to delete a file
my_rm=/bin/rm
file1=$1
pattern='jobfile'
function rm_jobfile () {
# Put the code you want to run pre-deletion here:
echo Running code before deleting ${file1}.
# Delete the file.
read -p "Are you sure you want to delete ${file1} (y/N): " decision
if [ "$decision" == "Y" ] || [ "$decision" == "y" ]; then
echo Deleting ${file1}...
$my_rm $file1
# Put the code you want to run post-deletion here:
echo Running code after deleting ${file1}.
else
echo No file deleted.
fi
# Put any cleanup code here:
echo Running cleanup code whether or not ${file1} was deleted.
}
# If the file is a jobfile, run the function, otherwise just delete it.
if [[ $file1 =~ $pattern ]]; then
rm_jobfile $file1
else
$my_rm $file1
fi
exit
上記のエイリアスを作成したと仮定して、実行
rm jobfile1.xml
my-delete.shで機能コードを実行しますが、実行します
rm something.txt
しない。
Microsoft Windowsにはbash(およびLinuxカーネル)が含まれるようになったため、これもそこで実行されるはずですが、テストしていません。これからもpowershellスクリプトを適合させることができると確信しています。私はWindowsの男ではありません。お役に立てれば。