000 パーミッションで Bash 関数を実行できるのは完全に正しいわけではありませんが、ほぼ正しいです。私のコードは次のとおりです。
#!/bin/bash
function hello {
echo Hello! }
hello ファイルには次の権限があります。
-r-------- 1 UnixBasics hello_file
まず、現在の権限で次のように入力します。
$ . ./hello_file;hello
微調整は、bash スクリプト スクリプトを実行する直前に 400 パーミッションを 000 に変更することです。
$ chmod 000 hello_file
$ . ./hello_file;hello [1]
-bash: ./hello_file: Permission denied
Hello!
1 つのエラーが発生しますが、関数の実行は停止しません。私は理解できない。hello-function の設定を解除しました: 「unset hello」。エラーが表示されます:
-bash: ./hello_file: Permission denied
-bash: hello: command not found
なぜ最初にそれらを取得できなかったのですか? キャッシュ、バッファなどと関係がありますか? 000 パーミッションで Bash スクリプトを実行できるのはなぜですか? [1]