ユーザーが現在シェルスクリプトディレクトリでない場合は、シェルスクリプトを停止します。たとえば、私はフォルダにいます ~/
そしてシェルスクリプトを呼び出す ~/shell/script.sh
シェルスクリプトが出力するはずです You are not allowed to call this shell script from another folder other than its directory
。しかし、私がそのフォルダにいるなら ~/shell
そして電話 ./script.sh
実行は許可されています。
なぜあなたは何を気にかけますか
$PWD
は何ですか?問題がある場合は、スクリプト内のディレクトリを変更できます。cd "$(dirname "$0")"
これは非常にローカルで攻撃的で危険なスクリプトなので、スクリプトを実行しているときは、ユーザーにもっと注意を払ってもらいたいです。
関連する質問
スクリプトを自分のディレクトリに変更するだけでいいのではないでしょうか。それからあなたがどこからそれを呼ぶかは問題ではない:
—
glenn jackman
cd "$(dirname "$(realpath "$0")")"
を確保する必要があるからです
—
user
$0
フォーム上の現在のファイルfileを含みます ./shell.sh
後でシェルスクリプトで説明するように、私は使っています find .
現在のフォルダのファイルを一覧表示するには "$path" != "$0"
私が適用しているこの処理リストから私自身のシェルスクリプトを除外する方法 sed .
$PWD
。