gpt4 book ai didi

bash - 选项卡扩展和 "./"bash shell

转载 作者:行者123 更新时间:2023-12-04 18:32:39 24 4
gpt4 key购买 nike

关闭。这个问题是off-topic .它目前不接受答案。












想改进这个问题? Update the question所以它是on-topic对于堆栈溢出。


9年前关闭。







Improve this question




也许这里有人可以帮助我。在两台机器上安装了 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 scriptname.sh .bash 文件中可能有问题。但不确定在哪里看。

最佳答案

我建议尝试 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 脚本正常解释的二进制格式。

尝试从另一个帐户进行测试(如果可以的话)。问题是您帐户独有的吗?我也会尝试重新启动,以防只是一些暂时的损坏导致问题(再次,如果可以的话)。

(答案原本是一系列评论)

关于bash - 选项卡扩展和 "./"bash shell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13224804/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com