【发布时间】:2016-09-18 10:02:57
【问题描述】:
运行bash test.sh 有效。但是运行./test.sh 不起作用。这是为什么呢?
$PATH
Adams-MacBook-Pro:~ adamzerner$ echo $PATH
/Users/adamzerner/.rvm/gems/ruby-2.3.0/bin:/Users/adamzerner/.rvm/gems/ruby-2.3.0@global/bin:/Users/adamzerner/.rvm/rubies/ruby-2.3.0/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/adamzerner/.rvm/bin
test.sh
#!/bin/bash
echo Test
控制台输出:
Adams-MacBook-Pro:~ adamzerner$ ls
Applications Downloads Movies Public
Desktop Dropbox Music code
Documents Library Pictures test.sh
Adams-MacBook-Pro:~ adamzerner$ ./test.sh
-bash: ./test.sh: Permission denied
Adams-MacBook-Pro:~ adamzerner$ sudo !!
sudo ./test.sh
Password:
sudo: ./test.sh: command not found
Adams-MacBook-Pro:~ adamzerner$ bash test.sh
Test
Adams-MacBook-Pro:~ adamzerner$
文件权限:
Adams-MacBook-Pro:~ adamzerner$ stat test.sh
16777220 1752325 -rw-r--r-- 1 adamzerner staff 0 22 "May 20 20:23:07 2016" "May 20 20:04:40 2016" "May 20 20:04:40 2016" "May 20 20:03:40 2016" 4096 8 0 test.sh
【问题讨论】:
-
test.sh有执行权限吗?编辑您的帖子以包含stat test.sh的输出 -
@muru 我不知道。 a)我怎么能弄清楚呢? b) 为什么这会导致
bash工作但./不工作? c)sudo不会解决这个问题吗? -
a)
stat test.sh寻找类似rwxr-xr-x的东西,特别是x。 b)bash具有执行权限,并且您正在那里运行bash,而不是直接运行脚本,c)没有。