Для пакета нет записи sources.list
, поскольку он размещен в репозиториях по умолчанию в Debian. Вы должны быть в состоянии бежать
sudo apt install libpyside-dev
и получите соответствующую версию для вашего дистрибутива.
Если вы используете Buster, вы не сможете установить libpyside-dev
в настоящее время, если вы также не добавите unstable
в свои репозитории, потому что пакет был удален из Buster(Qt4 удаляется); подробности см. вики Debian . В частности, вы должны закрепить свои репозитории, чтобы пакеты из Buster имели приоритет над пакетами из Sid; добавить следующее к/etc/apt/preferences
:
Package: *
Pin: release a=testing
Pin-Priority: 900
Package: *
Pin: release a=unstable
Pin-Priority: 800
Итак, во-первых, каждый раз, когда вы делаете что-то вроде ${var_${iter_val}}
, то есть пытаетесь добавить число к имени переменной, вместо этого вы должны использовать массив:
arr=(a b c)
arr[1]=x
i=1
echo "${arr[i]}"
Если вам нужно что-то индексировать с помощью строк , используйте ассоциативный массив(declare -A arrayname
в Bash ).
Комбинация тех, которые, скажем, имеют разные свойства для некоторых «объектов» в массиве, сложнее. Вы можете использовать два отдельных массива, а затем использовать foo[i]
и bar[i]
.
Если вам по-прежнему нужно косвенно указывать на эти массивы по имени, вам нужна ссылка на имя.
foo=(a b c)
bar=(x y z)
declare -n arrname=foo
echo "${arrname[i]}"
Из вашего кода я не могу сказать, какой именно должна быть ваша структура данных, поэтому сложно дать ответ только для этого сценария.
Пытаясь переписать ваш пример, вы могли бы сделать что-то вроде этого:
varnames=()
varnames[1]=msd_ext
varnum=1
msd_ext_len=24
declare -n srcvar="${varnames[varnum]}_len"
declare -n dstvar=final_count
dstvar=$srcvar
echo $final_count
Это по-прежнему требует использования массива для varnames
, так как вложенное расширение ${var_$foo}
на самом деле не работает.
См.: