cd命令看不到bash中的目录

时间:2014-06-12 00:13:40

标签: bash shell unix sh

我有以下bash脚本:

#!/bin/bash
run_python(){
    cd "`dirname $1`"
    python "`basename $1`" $2 >test.log
}

crypto_util=/home/dev/src/crypto/util.py
run_python $crypto_util "testpassword"

不知何故cd命令失败说:

cd:/ home / dev / src / crypto没有这样的文件或目录。我很确定目录存在。

另外,如果我执行以下操作,也会失败:

run_python(){
    python "$1" $2 >test.log
}   

说python无法打开文件/home/dev/src/crypto/util.py,因为没有这样的文件。

知道为什么吗?

以下是目录/ file上的ll命令的输出:

drwxr--r--. 2 dev root 4096 Jun 11 18:56 crypto

-rwxr--r--. 1 dev root  4934 Jun  9 10:50 util.py

输出ls -llid / home /

654084 drwxr-xr-x. 4 root root 4096 May  8 10:52 /home

输出ls -lid / home / dev /

924265 drwxr--r--. 4 dev root 4096 Jun  9 09:17 /home/dev/

输出ls -lid / home / dev / src /:

924266 drwxr--r--. 9 dev root 4096 Jun  9 10:01 /home/dev/src/

输出ls -lid / home / dev / src / crypto:

924333 drwxr--r--. 2 dev root 4096 Jun 11 18:56 /home/dev/src/crypto/

ls -lid / home / dev / src / crypto / util.py的输出:

924337 -rwxr--r--. 1 dev root 4934 Jun  9 10:50 /home/dev/src/crypto/util.py

1 个答案:

答案 0 :(得分:2)

其中一些目录没有设置x权限位 - 进入目录时需要这些权限。您的问题可能是您的脚本与另一个用户作为所有者运行而不是“dev”。 dev是唯一允许更改为这些目录的用户。 将dirs设置为+ x,然后重试。