Если у вас нет внешней необходимости создавать переменные foo_value
, bar_value
и т. д., а они нужны только внутри скрипта, вам, вероятно, следует использовать вместо этого ассоциативный массив. Вот так:
declare -A values
for i in "${array[@]}"; do
# some commands...
values[$i]="my string including other variables ${other_variable}"
done
echo "${values[$i]}"
# loop over the keys:
for key in "${!values[@]}"; do
echo "values has key '$key'"
done
(Обратите внимание, что вы хотите заключить "${array[@]}"
в кавычки, чтобы правильно обрабатывать значения, содержащие пробелы и символы подстановки; и вам нужно поставить точку с запятой перед do
в for i in...; do
.)
Давно не пользовался cvs
:sub -версия svn
и mercurial hg
лучше. У них есть атомарные коммиты (, каждый файл коммитится вместе, так что вы можете -откатить всю фиксацию целиком за один шаг ).
Укажите файл для фиксации:cvs commit -m '«message»' '«file-names…»'
#↳ cvs --help commit
Usage: cvs commit [-cRlf] [-m msg | -F logfile] [-r rev] files...
И/или используйте cvs status
, чтобы найти нужную информацию.
The cvs status command is a quick way to determine which files are up-to-date and which need to be committed or merged.... — https://www.oreilly.com/library/view/essential-cvs/0596004591/ch03s04.html#:~:text=The%20cvs%20status%20command%20is,merged.
Вы можете использовать команду update
для отображения измененных и добавленных файлов, которые будут зафиксированы, если вы не укажете, какие файлы нужно зафиксировать. Добавьте опцию -n
для имитации обновления (пробного -прогона ), например.
$ cvs -n up
cvs update: Updating.
M foo
A yum
показывает файл yum
как добавленный, а файл foo
как измененный.(up
является псевдонимом для update
, см.cvs --help-synonyms
).