【发布时间】:2012-10-24 20:35:08
【问题描述】:
也许这里有人可以帮助我。在两台机器上安装了 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 文件中可能有问题。但不知道去哪里找。
【问题讨论】:
-
等等,你的意思是
./scriptname(/ 后没有空格?) -
bash 中没有
./命令。你的意思是,./scriptname,这只是脚本的路径名,对吧?你确定脚本是可读的和可执行文件吗? -
正确的 ./scriptname.sh 在机器 2 上不起作用,但在机器 1 上工作正常。
-
所有权限都正确,正确设置为可读可执行。
-
那么当你输入“./scriptname.sh”并按下回车键时究竟会发生什么?
标签: bash scripting environment ubuntu-12.04 kubuntu