0

別のシェルスクリプト内でシェルスクリプトを呼び出していますが、呼び出されたシェルスクリプトには、このように実行したくないフォルダーを削除するコマンドがあります

$ rm ../temp -rf

呼び出されたスクリプトの内容を変更せずにこのコマンドが実行されないようにする方法はありますか?

4

1 に答える 1

0

スクリプトで次のようなエイリアスを定義できます。

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
于 2013-05-08T18:28:33.183 に答える