Переменная в определении переменной

ОС Qubes использует диспетчер пакетов RPM в качестве диспетчера пакетов. Ubuntu (, как и Debian, на котором основана Ubuntu ), использует пакеты.deb. Прежде чем пытаться установить файл.deb, проверьте, доступен ли тот же пакет в виде файла.rpm в стандартных репозиториях yum.

Чтобы преобразовать пакет из deb в rpm, используйте пакет Alien. Вы должны использовать чужой в крайнем случае, вам лучше скомпилировать из исходного кода.

Преобразование пакета.deb в пакет.rpm:

sudo alien -r package.deb

Чтобы установить преобразованный пакет.rpm:

sudo yum install package.rpm
-1
23.08.2019, 12:46
2 ответа

Одинарные кавычки предотвращают расширение переменной оболочкой. Вместо этого пользователь использует двойные кавычки.

Для значений, которые не нужно заключать в кавычки в JSON:

aa=$( curl -d "{\"foo\": $bb}" -H... )

или,

aa=$( curl -d '{"foo":'"$bb"'}' -H... )

Если значение переменной должно быть закодировано в формате JSON, (может потребоваться для некоторых строк ), или если вы хотите, чтобы синтаксический анализатор JSON принимал решение о заключении значения в кавычки (, которое обычно требуется при отправке данные, считанные из внешнего источника, такие как пользовательский ввод):

aa=$( curl -d "$( jq -nc --arg val "$bb" '{"foo": $val}' )" -H... )

или, в два этапа,

json=$( jq -nc --arg val "$bb" '{"foo": $val}' )" )
aa=$( curl -d "$json" -H... )

Здесь используется jqдля создания документа JSON, который затем используется с параметром -dдля curl.

1
28.01.2020, 05:14
aa=`curl -d '{"foo":$(echo $bb)}' -H "Cont... <and so the same>`
aa=`curl -d '{"foo":"$bb"}' -H "Cont... <and so the same>`

Баш версии 4.2
также вы можете прочитать о eval

-2
28.01.2020, 05:14

Теги

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