当我在系统中运行 lks.sh 文件时,它显示权限被拒绝:

./lks.sh  bash: ./lks.sh: Permission denied

我需要做什么才能运行这个 shell 脚本?

这是我的 .sh 文件:
lokesh = "wait"
if[$lokesh == "wait"]
        echo "$lokesh"

else
        sudo shutdown -h now

最佳答案

你的脚本有几个问题。

首先,“权限被拒绝”很可能是因为您的脚本没有允许脚本实际运行的执行权限。所以你需要像这样对它进行 chmod:

chmod 755 lks.sh

然后你应该能够运行它。 FWIW,7755 为您(所有者)提供执行、读取和写入权限,而 5 为组成员和其他人提供执行和读取权限。随意将其更改为 744,这样您就可以编辑该脚本,但其他人(通过 4)可以阅读该脚本。甚至是 700,因此您是唯一一个可以使用该脚本执行任何操作的人。

但这就是说,您对此的变量分配似乎不对:
lokesh = "wait"

根据我的经验,= 周围不应该有这样的空格:
lokesh="wait"

接下来这个间距在语法上是不正确的:
if[$lokesh == "wait"]

它应该是:
if [ $lokesh == "wait" ]

最后你的整个 if/else 语法不正确;没有 then 也没有关闭 fi 。所以这是你最终的、清理过的脚本:
lokesh="wait"
if [ $lokesh == "wait" ]; then
    echo "$lokesh"
else
    sudo shutdown -h now
fi

也就是说,最直接的问题是执行权限问题,但其他事情肯定也会扼杀您的脚本。

关于linux - 什么是./lks.sh : Permission denied in Linux when running a shell script?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24463862/

10-10 07:15