解决shell无法执行的问题

 更新时间:2023年11月24日 16:17:48   作者:逆光倾城  
这篇文章主要介绍了解决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,松开。

  • 不是shift+6,再按M
  • 不是shift+6,再按M
  • 不是shift+6,再按M

剖析问题来源

  • 该 shell 脚本文件在 Windows 系统上创建,或经过 Windows 系统另存;
  • 该 shell 脚本通过 git 下载,但 git 配置了不自动转换格式;
  • 该 shell 脚本由 Windows 习惯的程序生成。

原因2_执行权限导致

摘要:

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

  • 问题1:缺少 shell 解析器
  • 问题2:shell 文件本文的权限
  • 问题3:操作系统对 shell 脚本执行的管理

问题1解决方法

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

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

#!/bin/bash

问题2解决方法

通过chmod命令解决,如:

chmod a+x xxx.sh

问题3解决方法

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

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

总结

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

相关文章

  • Linux包管理工具yum、apt的区别

    Linux包管理工具yum、apt的区别

    Linux系统基本分两大类:RedHat系列:Redhat、Centos、Fedora等;Debian系列:Debian、Ubuntu 等。yum是一个在 Fedora 和 RedHat 以及 SUSE 中的 Shell 前端软件包管理器。apt是一个在 Debian 和Ubuntu中的Shell前端软件包管理器。
    2023-04-04
  • 阿里云ECS云服务器如何开放8080端口

    阿里云ECS云服务器如何开放8080端口

    这篇文章主要介绍了阿里云ECS云服务器如何开放8080端口,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • clickhouse远程连接以及用户名密码设置方式

    clickhouse远程连接以及用户名密码设置方式

    文章介绍了如何远程连接ClickHouse数据库,包括两种情况:禁用IPv6和启用IPv6,在远程连接时,使用DBeaver工具连接ClickHouse,需要注意两个端口:HTTP端口(8123)和TCP端口,此外,文章还讲述了如何设置用户名和密码
    2024-11-11
  • Linux Vim提示:E325: ATTENTION的问题及解决

    Linux Vim提示:E325: ATTENTION的问题及解决

    这篇文章主要介绍了Linux Vim提示:E325: ATTENTION的问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • 使用nginx来负载均衡 本文在window与linux下配置nginx实现负载

    使用nginx来负载均衡 本文在window与linux下配置nginx实现负载

    使用nginx来负载均衡,本文在window与linux下配置nginx实现负载
    2010-03-03
  • Linux设置自动重启脚本实现方式

    Linux设置自动重启脚本实现方式

    这篇文章主要介绍了Linux设置自动重启脚本实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-10-10
  • Apache Calcite 实现方言转换的代码

    Apache Calcite 实现方言转换的代码

    这篇文章主要介绍了Apache Calcite 实现方言转换的代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • ubuntu服务器环境下安装python的方法

    ubuntu服务器环境下安装python的方法

    这篇文章主要介绍了ubuntu服务器环境下安装python的方法,简单分析了Ubuntu环境下安装Python的相关步骤、命令、与操作注意事项,需要的朋友可以参考下
    2018-03-03
  • centos7安装maven离线安装全过程

    centos7安装maven离线安装全过程

    这篇文章主要介绍了centos7安装maven离线安装全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • 详解在Linux虚拟机下配置tomcat

    详解在Linux虚拟机下配置tomcat

    这篇文章主要介绍了详解在Linux虚拟机下配置tomcat,非常具有实用价值,需要的朋友可以参考下。
    2017-01-01

最新评论