次のコマンドを含むシェルスクリプトを実行しようとしています。
$locate /etc/*.conf
/ etc /で.confで終わるすべてのファイルが見つかりましたが、スクリプトを実行するたびにコマンドラインに表示されます/etc/chrony.conf: Permission denied
。コマンドラインでのみコマンドを実行するたびに正常に実行されますが、スクリプトは失敗します。 chmodを使用してスクリプト権限を更新し、sudo権限でスクリプトを実行しようとし、スクリプト自体内でsudo権限を付与し、さらにはrootとしてログインしていますが、まだ権限が拒否されたことを示します。
助けてくれてありがとう。ありがとうございます!
答え1
ドル記号を削除してください。
シェルを作成するときは、$locate
実行可能ファイルの代わりに「locate」という変数を探します。
「locate」という変数がないので、実際には次のように呼び出します。
/etc/*.conf
globは一致し、シェルが実行したいすべてのファイルに展開されます。あなたの場合、最初のファイル名はです/etc/chrony.conf
。ファイルが実行可能でないため、エラーが発生します。