Bash未检测到该文件存在

时间:2015-02-28 16:19:44

标签: bash

我在cd命令之前和之后创建了一个bash别名来执行脚本。唯一的问题是它不执行文件。

这是我的代码

cd(){
if [ -d "./.dinit" ]
then
    echo "dinit file exists"
    source ./.dinit
fi
builtin cd $@
if [ -d "./.init"  ]
then
    echo "init file exists"
    source ./.init
fi
}

.init 文件中,我有命令echo hello,在 .dinit 中我有echo goodbye

当我开始工作时,我将PATH=语句与别名一起放在文件中。

有谁知道如何让命令执行?

1 个答案:

答案 0 :(得分:1)

您的支票现在会查找目录,然后您尝试提供这些目录。这没有任何意义,所以我假设那些是你想要的文件。在这种情况下,您应该使用-f来检查常规文件:

cd(){
if [ -f "./.dinit" ]
then
    echo "dinit file exists"
    source ./.dinit
fi
builtin cd "$@"
if [ -f "./.init"  ]
then
    echo "init file exists"
    source ./.init
fi
}