Не совсем понимаю, что вы пытаетесь сделать с этой строкой
set new '"$Backend1Name"'
Одинарные кавычки не имеют специального значения в Tcl/expect :они буквально являются частью значения $new. Значением переменной new
будет :одинарная кавычка, двойная кавычка, значение переменной Backend, двойная кавычка, одинарная кавычка. Если вы не установили переменную Backend1Name в ожидаемом сценарии, вы должны получить сообщение об ошибке.
Вы, наверное, хотите
если вы хотите, чтобы удаленная оболочка расширяла переменную
set new {"$Backend1Name"}
если вы хотите, чтобы сценарий ожидания расширил переменную, но вам нужны двойные кавычки в значении
set new "\"$Backend1Name\""
Я сомневаюсь, что вы хотите, чтобы буквальные двойные кавычки вокруг имени отображались в файле YAML.
Вы можете просмотреть уроки 5 и 6 учебника по Tcl
Git не делает ничего, кроме чтения из файла. Это точно не сломает трубу. Вы даже можете создать репозиторий git для каталога только для чтения -и зафиксировать файлы только для чтения -. Пока вы только добавляете и фиксируете вещи, а не делаете что-то, что проверяет или изменяет рабочий каталог, единственное место, где Git должен писать, находится внутри каталога Git(.git
по умолчанию, но вы можете поместить его куда-нибудь. иначе сgit --git-dir=…
).
Если вы действительно беспокоитесь, вы можете убедиться в этом, посмотрев исходный код Git. Или посмотрите, что делает git для фиксации файла…
strace -o commit.strace -f git commit -m wibble foo
Вы увидите только вызовы lstat
и open(…, O_RDONLY)
на foo
.
Что может потерпеть неудачу, так это git add
действие. Если процесс пишет в файл, пока Git его читает, Git может заметить, что файл изменился, и сдаться. Это не влияет на исходный файл в любом случае:git add myfile
не должно ничего делать в случае сбоя, но даже если Git каким-то образом содержит ошибки и не восстанавливается должным образом, это повлияет только на индекс Git, а не на файл данных, который Git открывается только для чтения -. Я думаю, что сообщение об ошибке будет «запутано из-за нестабильных исходных данных объекта» , но я не проверял, может быть какая-то другая проверка размера, которая срабатывает первой. Учитывая вашу скорость передачи данных, если git add
не работает, сделайте паузу на секунду и повторите попытку.