不能在脚本中使用mkdir:权限被拒绝

时间:2016-10-13 13:01:58

标签: linux bash

我正在创建几个脚本来启动一些程序,然后在一个toplevel.sh脚本中重新调用它们,第一个脚本是一个toplevel_config.sh,其中我导出了我需要的所有路径:

    export TARGET_FOLDER="home2/marwa/Desktop/folder/test_all/prot_x"
    export TARGET_FILE="prot_x"

当我必须创建一个目录时,一切正常,除了在一个scrpit中,我有这个错误:

mkdir: cannot create directory ‘/top10_prot_x’: Permission denied

负责的脚本是:

results_path=${TRAGET_FOLDER}/sam_results/vmd_results/namd_results/*.out
top10_path=${TRAGET_FOLDER}/top10_${TARGET_FILE}

if [ ! -d "$top10_path" ]; then
   mkdir "$top10_path"
fi 

2 个答案:

答案 0 :(得分:4)

你正试图在另一条路径上使用mkdir。

您的变量路径是:

results_path=${TRAGET_FOLDER}/sam_results/vmd_results/namd_results/*.out
top10_path=${TRAGET_FOLDER}/top10_${TARGET_FILE}

但你定义了

export TARGET_FOLDER="home2/marwa/Desktop/folder/test_all/prot_x"
export TARGET_FILE="prot_x"

所以$ {TRAGET_FOLDER} = null且不存在。

此外,'/ top10_prot_x'已经解释过了。

答案 1 :(得分:0)

检查权限和执行脚本的用户,尝试使用ls -l命令检查是否允许创建目录/文件。