选项卡扩展和"./" bash 外壳



也许这里有人可以帮助我。已经在两台机器上安装了Ubuntu 12.04 LTS(Kubuntu)。.bashrc.bash_profile文件与每台机器上的文件结构相同。

在计算机1 上:我在终端窗口中运行bash脚本,带有简单: ./scriptname.sh

在机器2 上:我不能这样做,必须使用: sh scriptname.sh我也不能使用 ./并完成脚本文件名。

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

有什么想法为什么会发生这种情况?

如果我尝试使用./file_motion_grab.sh执行脚本:

bash: ./file_motion_grab.sh: Permission denied

尝试ls -l时,我得到:

-rwxrwxrwx 1 adelie adelie 351 Nov 4 20:32 file_motion_grab.sh

getfacl的输出是:

# file: file_motion_grab.sh
# owner: adelie
# group: adelie
user::rwx
group::rwx
other::rwx

更通用 - 必须调用第二个计算机上的任何新脚本:SH脚本名称。但不确定在哪里看。

我建议尝试使用ls -al检查文件和目录上的权限。另外,尝试getfacl file.sh,因为有时有ACL权限覆盖普通Unix许可位。

然后,我将尝试head -n 1 file.sh | xxd,查看第一行,并确保Shebang作为文件的前两个字符正确。有时,隐藏的字符,例如Unicode BOM,可能会导致它无法正确解释。

然后,我将检查外壳本身的权限。ls -l /bin/bashgetfacl /bin/bash。我还会检查其他口译员是否发生这种情况。您可以将#!/bin/sh用于脚本吗?#!/bin/python(或Perl,Ruby,或类似的东西)?区分这种情况是仅适用于/bin/bash还是其他外壳会有所帮助。

另外,请看一下ls /proc/sys/fs/binfmt_misc,看看您是否配置了可能干扰Shell脚本的正常解释的二进制格式。

也尝试从另一个帐户进行测试(如果可以的话)。问题是您帐户独有的吗?我也会尝试重新启动,以防万一只是一些瞬时腐败引起了问题(如果可以的话,同样)。

(答案最初是一系列评论)

相关内容

  • 没有找到相关文章

最新更新