Linux

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > Linux > shell无法执行的问题

解决shell无法执行的问题

作者:逆光倾城

这篇文章主要介绍了解决shell无法执行的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

原因1_换行符错误导致

摘要:

Linux 系统,shell 脚本文件内,换行符为 CRLF 导致的,转换为 LF 换行,即可正常运行。

在Notepad++软件上,视图–显示符号–显示行尾符,可看到二者差异,

如下图所示:

转换方法1:Windows 下使用 notepad++

编辑–文档格式转换–转为 Unix(LF)

转换方法2:Linux 下使用 sed 命令

#另存模式
sed -e 's,^M,,g' old.sh > new.sh
#覆盖模式
sed -i 's,^M,,g' old.sh

注意 ^M的输入方式为:按住Ctrl,按下V,松开V,按下M,松开。

剖析问题来源

原因2_执行权限导致

摘要:

shell 脚本由于种种原因,不具备执行的权限,权限问题包括 3 个方面:

问题1解决方法

这个问题的排查方法可以用命令 sh xxx.sh来测试,如果手动指定解析器,可以运行脚本的话,那么属于缺少shell解析器的问题,如果仍然无法运行脚本,则不属于问题1。

在 shell 文件开头,添加如下1行代码:

#!/bin/bash

问题2解决方法

通过chmod命令解决,如:

chmod a+x xxx.sh

问题3解决方法

在某些安全性较高的Linux发行版系统中,系统不允许未认证的程序执行,包括脚本。

可尝试,通过系统设置、安全中心等配置,调整安全级别,使其能够运行。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文