Чего мне не хватает в этом простом Bash скрипте? - PullRequest
0 голосов
/ 21 апреля 2020
#!/bin/bash
#Toggle Script

# $dirserver/A  -> $dirproject/{trunk|branches}/A

if [[ "$1" == "dw" || -z "$1" ]]; then
        echo "[+] Delete old link ( $dirserver/A )... "
        rm "$dirserver/A"
    if [[ "$(readlink -f $dirserver/A)" == *"branches"* ]]; then
                ln -s "$dirproject/trunk/A" "$dirserver/A"
                echo "[+] Done. You are now in TRUNK"
    else
                ln -s "$dirproject/branches/A" "$dirserver/A"
                echo "[+] Done. You are now in BRANCH."

    fi
fi

Ожидаемая функциональность: переключение между символическими ссылками, BRANCH или TRUNK.

Ошибка: ./toggle.sh dw Всегда заканчивается на BRANCH.

Примечания: Нет. Нет слова "ветви «когда он указывает на ствол.

Заранее спасибо.

1 Ответ

0 голосов
/ 21 апреля 2020

Вы удаляете старую ссылку перед проверкой. Только не удаляйте его вообще, только перезаписывайте.

if [[ "$1" == "dw" || -z "$1" ]]; then
    if [[ "$(readlink -f "$dirserver/A")" == *branches* ]]; then
       ln -f -s "$dirproject/trunk/A" "$dirserver/A"
    else
       ln -f -s "$dirproject/branches/A" "$dirserver/A"
    fi
fi
...