別のシェルスクリプト内でシェルスクリプトを呼び出していますが、呼び出されたシェルスクリプトには、このように実行したくないフォルダーを削除するコマンドがあります
$ rm ../temp -rf
呼び出されたスクリプトの内容を変更せずにこのコマンドが実行されないようにする方法はありますか?
別のシェルスクリプト内でシェルスクリプトを呼び出していますが、呼び出されたシェルスクリプトには、このように実行したくないフォルダーを削除するコマンドがあります
$ rm ../temp -rf
呼び出されたスクリプトの内容を変更せずにこのコマンドが実行されないようにする方法はありますか?
スクリプトで次のようなエイリアスを定義できます。
alias rm='echo SAFE'
デフォルトでは、エイリアスはインタラクティブ シェルでのみ機能するため、この動作を次のように変更する必要があります。
shopt -s expand_aliases
スクリプトで、他のスクリプト (変更できないスクリプト) をソースします。
source the_other_script.sh
また
. the_other_script.sh
これは、他のスクリプトがサブシェルで実行されない限り機能しrm
ます。
別のより安全な方法は、何もしない独自のrm
コマンドを作成し (または、何が起こっているかを知るために引数を出力するだけ)、ディレクトリに配置し、このディレクトリをPATH
環境変数の最初のディレクトリとして次のように配置することです (Korn シェル構文):
$ export PATH=/path/to/your/dummy/rm/replacement:$PATH