我正在尝试运行包含命令的 shell 脚本
$locate /etc/*.conf
查找 /etc/ 中以 .conf 结尾的所有文件,但每当我运行脚本时,命令行都会显示/etc/chrony.conf: Permission denied
. 每当我在命令行中单独运行命令时,它执行得很好,但从脚本中它失败了。我已经用 chmod 更新了脚本权限,尝试使用 sudo 权限运行脚本,在脚本本身内部赋予 sudo 权限,甚至以 root 身份登录,但它仍然说权限被拒绝。
任何帮助表示赞赏,谢谢!
删除美元符号。
当您编写
$locate
shell 时,查找名为“locate”的变量而不是可执行文件。因为您没有名为“locate”的变量,所以您实际上是在调用:
glob 扩展到所有匹配它的文件,shell 想要执行这些文件。您案例中的第一个文件名是
/etc/chrony.conf
,因为该文件不是可执行文件,所以它会抛出错误。