在Bash

时间:2016-11-02 18:54:14

标签: bash

我写了一个适用于我的机器的bash脚本,但我想与同事分享。在这样做时,我希望他能够仅改变适合他的系统的变量中的路径。我假设我应该添加一部分脚本来检查现有目录,如果它们不存在则创建它们?

还有一种方法让我使用"〜/"将路径指向他的主目录?

基本上尝试使这个脚本的切换尽可能简单,本地用户只会更改变量中的路径。

谢谢!

附件是我的剧本片段 - 我希望" me"反映当地用户。

dbreportspath="/Users/me/Dropbox/NDT_RED_REPORTS/"$survivor"/"    #Path to Local dropbox Silverstack Reports - Make sure the directory exists!
dbpath="/Users/me/Dropbox/Drive_Contents/"                        #Path to Local dropbox Drive Contents - Make sure the directory exists!
localdc="/Users/me/Documents/Drive_Contents/Jobs/"$survivor/""    #Path to Local directory for Drive Contents

1 个答案:

答案 0 :(得分:2)

我会将您的脚本更改为

dbreportspath="$HOME/Dropbox/NDT_RED_REPORTS/$survivor/"
dbpath="$HOME/Dropbox/Drive_Contents/"
localdc="$HOME/Documents/Drive_Contents/Jobs/$survivor/"

(请注意,我已删除$survivor周围的引号。除非您能详细说明,否则我不确定他们的需要吗?)

要回答有关创建目录的问题的其他部分(如果它们不存在):

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

或者如果你需要多次这样做:

function createDirsIfDoNotExist() {
    for dir in "$@"; do
        if [ ! -d "$dir" ]; then
            mkdir -p "$dir"
        fi
    done
}

createDirsIfDoNotExist "$dbreportspath" "$dbpath" "$localdc"