LOK*_*ESH 3 unix linux bash shell
当我lks.sh在我的系统中运行文件时,显示权限被拒绝:
./lks.sh bash: ./lks.sh: Permission denied
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能运行这个shell脚本?
这是我的.sh档案:
lokesh = "wait"
if[$lokesh == "wait"]
echo "$lokesh"
else
sudo shutdown -h now
Run Code Online (Sandbox Code Playgroud)
您的脚本有一些问题.
首先,"权限被拒绝"很可能是因为您的脚本没有允许脚本实际运行的执行权限.所以你需要chmod像这样:
chmod 755 lks.sh
Run Code Online (Sandbox Code Playgroud)
然后你应该能够运行它.FWIW,在给予组成员和其他人执行和读取权限的同时7,755为您提供所有者执行,读取和写入5权限.随意更改,744以便您是唯一可以编辑该脚本的人,但其他人 - 通过4- 可以阅读它.或者即便700如此,你是唯一一个可以对该剧本做任何事情的人.
但是说,你的变量赋值似乎是关闭的:
lokesh = "wait"
Run Code Online (Sandbox Code Playgroud)
根据我的经验,这周围应该没有空格=:
lokesh="wait"
Run Code Online (Sandbox Code Playgroud)
接下来,这在语法上是不正确的:
if[$lokesh == "wait"]
Run Code Online (Sandbox Code Playgroud)
它应该是:
if [ $lokesh == "wait" ]
Run Code Online (Sandbox Code Playgroud)
最后你的整个if/ else语法是不正确的; 没有then,没有关闭fi.所以这是你最后清理过的脚本:
lokesh="wait"
if [ $lokesh == "wait" ]; then
echo "$lokesh"
else
sudo shutdown -h now
fi
Run Code Online (Sandbox Code Playgroud)
也就是说,最直接的问题是执行权问题,但其他事情肯定会扼杀你的脚本.
| 归档时间: |
|
| 查看次数: |
1279 次 |
| 最近记录: |