bash -Можно ли создать переменную, которая имеет название переменной и имеет строковое значение с другими переменными?

Как Миориин предложил в комментариях,-sudo pacman -Syyuпринудительно синхронизирует базу данных pacman.

Чтобы убедиться, что pamac показывает правильные обновления:

В pamac (GUI )перейдите в меню и выберите «Обновить базы данных», чтобы синхронизировать базы данных пакетов для pamac.

Теперь вы должны увидеть, что оба будут предлагать одни и те же обновления пакетов (, если таковые имеются ).

0
30.09.2019, 19:49
2 ответа

Если у вас нет внешней необходимости создавать переменные 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.)

3
28.01.2020, 02:22

Просто используйте exportвстроенный...

Пример (с бонусом :использование имени динамической переменной для доступа к ; -стр)

~$ cat test.sh 
#!/bin/bash

toto="coincoin"
tata="cuicui"

for var in toto tata; do
    export coincoin_${!var}="${var}"
done

echo "${coincoin_cuicui}"
echo "${coincoin_coincoin}"

~$./test.sh 
tata
toto
0
28.01.2020, 02:22

Теги

Похожие вопросы