【bash: ./performance.sh: Permission denied】

今天,在新的开发环境中,执行sh脚本的时候,出现了下面的问题:

-bash: *.sh: Permission denied。

排查使用ll -rt命令,看下sh脚本的权限。

未做处理之前:

-rw-rw-r--

可以看到,之前的sh脚本是没有执行权限标识(x)的。因此定位到原因,是sh脚本没有可执行权限造成的。

解决方案

    linux环境下输入:

chmod +x *.sh

    再用ll-rt看下处理后的权限标识:

-rwxrwxr-x

    可以看到,*.sh文件已经添加了可执行的权限。

    重新执行:

sh *.sh

    问题解决。

原因:在Linux中,第一次启动一个新的tomcat,用户没有权限,而导致无法执行。用命令chmod 修改一下bin目录下的.sh权限就可以了

解决:在bin目录下输入:

chmod u+x *.sh

这里的u 这里指文件所有者,+x 添加可执行权限,*.sh表示所有的sh文件

linux中执行sh文件时出现-bash: ./*.sh: Permission denied说明么有权限访问

解决步骤

1、在当前目录执行

chmod u+x *.sh

u指的是给所有用户,x给定可执行权限,*.sh所有的sh文件

linux 下执行.sh文件总是提示permission denied

如果你是root登陆的话(不是的话,切换到root用户,对*.sh赋可执行的权限) chmod 777 *.sh

or

chmod +x  *.sh

然后运行就OK了

Linux chmod +755和chmod +777 区别:

755 代表用户对该文件拥有读,写,执行的权限, 同组其他人员拥有执行和读的权限,没有写的权限,其他用户的权限和同组人员权限一样。

777代表,user,group ,others ,都有读写和可执行权限。

### 解决 Bash 执行 `set.sh` 脚本 Permission Denied 错误 当遇到 `-bash: ./set.sh: Permission denied` 的错误时,这通常意味着当前用户没有足够的权限来执行该脚本。以下是几种可能的原因以及相应的解决方案。 #### 1. 文件权限不足 如果尝试访问目录或文件时收到权限被拒的消息,则可能是由于目标路径上的某些文件夹或文件的读取、写入或执行权限设置不当所致[^1]。对于这种情况: - 可以通过更改文件权限来解决问题。使用 `chmod` 命令赋予可执行权限给脚本文件: ```bash chmod +x set.sh ``` - 如果还需要改变拥有者或其他更复杂的权限调整,可以考虑使用 `chown` 或进一步定制化的 `chmod` 设置。 #### 2. 文件格式不兼容 有时从 Windows 系统复制过来的 Shell 脚本可能会带有不同的换行符(CRLF),而在 Linux 中应该只使用 LF 换行符。这种差异可能导致解释器无法正确解析脚本,从而引发权限问题[^3]。为此, - 使用 `dos2unix` 工具转换文件格式是一个有效的办法。首先确保已安装此工具包;如果没有,请先安装它: ```bash sudo yum -y install dos2unix ``` - 接着运行以下命令清理潜在的格式问题: ```bash dos2unix set.sh ``` #### 3. 缺少 shebang 行 另一个常见原因是缺少所谓的 "shebang" 行——即位于脚本顶部的第一行,指定了用于解释后续代码的具体程序。例如,对于 Bash 脚本来说,应当包含如下内容作为首行: ```bash #!/bin/bash ``` 这条语句告诉操作系统这个文件应由 `/bin/bash` 来处理,这对于确保脚本能正常工作非常重要。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值