Форум — Development Метапрограммирование в bash bash, костылестроение, метапрограммирование 1 1 $ $(echo 'id="5"') bash: id="5": команда не найдена $ id="5" $ echo $id 5 Почему не работает присваивание из $(echo ...)? Ссылка
добавь eval потому что разбор строки производится один раз. sdio ★★★★★ (22.09.14 13:45:45 MSK) Последнее исправление: sdio 22.09.14 13:46:46 MSK (всего исправлений: 1) Показать ответ Ссылка
Потому что у тебя команда получается «выполнить результат выполнения команды echo <...>». alozovskoy ★★★★★ (22.09.14 13:50:56 MSK) Ссылка
Ответ на: комментарий от sdio 22.09.14 13:45:45 MSK добавь eval Спасибо, с числами взлетело. crutch_master ★★★★★ (22.09.14 14:05:47 MSK) автор топика Ссылка
Если кому понадобится перевод json (строк) в переменные bash с помощью jq и curl : $(curl -s http://some_url_with_json | jq -r '"eval int_var=" + .int + "; eval str_var=" + "\\\"" + .string + "\\\""') crutch_master ★★★★★ (22.09.14 14:21:55 MSK) автор топика Показать ответ Ссылка
Ответ на: комментарий от crutch_master 22.09.14 14:21:55 MSK Переходи на perl, пока не поздно. И плюшки шелла сохранишь, и не нужны атомные костыли для работы с HTTP и JSON.А если цель упражнения заключается в костылестроении, то возможности перла в этом плане просто не ограничены. annulen ★★★★★ (28.09.14 13:55:23 MSK) Показать ответ Ссылка
проблема баша, но он прекрасен, в том, что нужные вещи делаются нормально в subshell-е, но это не очень удобно anonymous (28.09.14 15:54:45 MSK) Ссылка
Ответ на: комментарий от annulen 28.09.14 13:55:23 MSK Я еще морально не готов к этому. Но скоро буду. crutch_master ★★★★★ (29.09.14 05:03:44 MSK) автор топика Ссылка