Oracle Linuxのシェル・スクリプトでコマンドの場所を指定する権限が拒否されましたか?

Oracle Linuxのシェル・スクリプトでコマンドの場所を指定する権限が拒否されましたか?

次のコマンドを含むシェルスクリプトを実行しようとしています。

$locate /etc/*.conf

/ etc /で.confで終わるすべてのファイルが見つかりましたが、スクリプトを実行するたびにコマンドラインに表示されます/etc/chrony.conf: Permission denied。コマンドラインでのみコマンドを実行するたびに正常に実行されますが、スクリプトは失敗します。 chmodを使用してスクリプト権限を更新し、sudo権限でスクリプトを実行しようとし、スクリプト自体内でsudo権限を付与し、さらにはrootとしてログインしていますが、まだ権限が拒否されたことを示します。

助けてくれてありがとう。ありがとうございます!

答え1

ドル記号を削除してください。

シェルを作成するときは、$locate実行可能ファイルの代わりに「locate」という変数を探します。

「locate」という変数がないので、実際には次のように呼び出します。

/etc/*.conf

globは一致し、シェルが実行したいすべてのファイルに展開されます。あなたの場合、最初のファイル名はです/etc/chrony.conf。ファイルが実行可能でないため、エラーが発生します。

関連情報