无法使用“./”执行 Shell 脚本

无法使用“./”执行 Shell 脚本

也许有人可以帮我。我在两台机器上安装了 Ubuntu 12.04 LTS (kubuntu)。.bashrc 和 .bash_profile 文件是相同的,因为每台机器上的文件结构都相同。

在机器 1 上,我在终端窗口中运行 bash 脚本,命令如下:./scriptname.sh

在机器 2 上,我无法执行此操作,必须使用:sh scriptname.sh,也不能使用 ./ 和制表符完成脚本文件名。

所有可执行位均已正确设置,所有文件和文件夹均具有正确的权限。在脚本的标题中,shebang 已正确设置。

知道为什么会发生这种情况吗?

干杯

答案1

您看到的错误可能是由于尝试在具有“noexe”属性的安装介质上运行可执行文件而导致的。键入 mount,然后检查包含脚本的设备的属性。如有必要,更改安装的 /etc/fstab 属性。

答案2

唯一会导致这种情况的原因是脚本不可执行。我知道您说已设置可执行位,但请确保:

chmod +x scriptname.sh

答案3

我读过有关自动完成出现的各种问题,不一定是 12.04 的问题,以下两个选项似乎值得尝试:

第一次尝试禁用 bash 可编程完成/etc/bash.bashrc:在和用户的以下三行中注释掉$HOME/.bashrc

 if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
     . /etc/bash_completion
 fi

您可能会发现这些行前面已被注释掉#,在这种情况下,只需保持原样即可。

其次,尝试重新安装 bash-completion

sudo apt-get purge bash-completion
sudo mv /etc/bash_completion.d /etc/bash_completion.d.bak
sudo apt-get install bash-completion

相关内容