我有以下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
答案 0 :(得分:2)
其中一些目录没有设置x权限位 - 进入目录时需要这些权限。您的问题可能是您的脚本与另一个用户作为所有者运行而不是“dev”。 dev是唯一允许更改为这些目录的用户。 将dirs设置为+ x,然后重试。