У меня есть следующая функция в скрипте bash. Давайте назовем этот скрипт example.sh
. Он находится внутри репозитория git, который должен обновиться.
example.sh (упрощенная версия)
# Directory of script
dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
update() {
( cd "$dir" && git pull )
}
if [ "$1" == "update" ]; then
update
fi
Затем я вызываю example.sh update
(который вызывает функцию), чтобы он выполнял git pull
.
Теперь проблема в том, что в example.sh
есть изменение, оно должно само обновляться. У Linux нет проблем с этим, но GitBash (Windows ..) жалуется, говоря:
ошибка: невозможно создать файл example.sh: разрешение запрещено
вероятно, потому что он используется для того, чтобы все еще запускать example.sh update
и ожидать завершения git pull
.
Я уже пробовал
( cd "$dir" && git pull & )
и
bash -c "sleep 1 && cd \"$dir\" && git pull" &
Как запустить новый процесс для обновления этого репо, чтобы в момент git pull
ing не использовались файлы?