Как проанализировать много переменных для избиения?

Вы, вероятно, пропускаете инструменты GTK-Doc для генерации документации.

Один способ узнать эти зависимости путем взгляда на то, что дистрибутивы делают для создания пакета. Например, на Debian, в debian/control, зависимости (кроме Debian-определенного материала)

m4, libltdl-dev | libltdl7-dev (> = 2.2.6), libasound2-dev, libvorbis-dev, libgtk2.0-dev (> = 2.20), tdb-dev (> 1.1), gtk-doc-tools, libpulse-dev (> = 0.9.11), libgstreamer0.10-dev (> = 0.10.15)

5
09.07.2012, 15:11
2 ответа

Кажется, что самый легкий путь состоит в том, чтобы перенаправить вывод в файл и затем получать этот файл.

В сценарии это будет похоже:

#!/bin/sh
program > tmp_file
. tmp_file
rm tmp_file
echo $any_var_you_need

В bash можно сделать это без временного файла вообще:

#!/bin/bash
source <(program)
echo $any_var_you_need

Единственная теоретическая дыра в системе безопасности - то, что программа может произвести некоторый опасный код, который уничтожит что-то.

Можно избежать его с проверкой programвывод с sed чтобы быть уверенным, это удовлетворяет только переменные:

program | sed '/^\s*[a-zA-Z_.][_a-zA-Z0-9]*=[a-zA-Z0-9_-+.,]*/!d;s/ .*//;'

это удалит все строки, который походит не на переменные (может быть отредактирован в Вашем вкусе).

7
27.01.2020, 20:36
  • 1
    Это - ужасный план. Это не теоретическая дыра в системе безопасности, это - крупный и очень реальный кратер безопасности. –  Alex Chamberlain 09.07.2012, 22:57

С тем же протестом безопасности как @rush упомянутый, Вы могли просто предварительно ожидать eval к Вашей команде. Конечно, в обоих случаях, что-либо, что не является допустимым синтаксисом удара, произведет ошибку (что можно проигнорировать).

Пример:

$ echo 'a=1
> b=2
> c=1234'
a=1
b=2
c=1234
$ echo $b

$ eval echo 'a=1
b=2
c=1234'
a=1
$ echo $b
2
2
27.01.2020, 20:36
  • 1
    Просто eval 'a=100 ...' (без echo) работы также –  daniel kullmann 09.07.2012, 16:49
  • 2
    Конечно, я эмулировал вывод его программы там. –  lynxlynxlynx 09.07.2012, 17:17

Теги

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