当我在系统中运行 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,
7
和 755
为您(所有者)提供执行、读取和写入权限,而 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/