也许有人可以帮我。我在两台机器上安装了 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