Wpis z mikrobloga

#bash #linux #devops #programowanie

Mam pytanko do wykopowych #programista15k, mam patent jak modyfikować wartości zmiennych w działających skryptach basha:

sh
gdb -batch -p $(pgrep -f $script_name) -ex "call (char*)get_string_value(\"$var_name\")" -ex "call (void*)bind_variable(\"$var_name\",\"$new_value\",0)"

Czy jest podobna funkcja która pozwala zmodyfikować listing funkcji ?
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

via Wykop Mobilny (Android)
  • 1
@BArtus: w działającym procesie podmienić na żywca? Fajny problem, przyznam że nie wiem, a czemu w ogóle jest taka potrzeba? Nie wiem czy nie możnaby skryptu przepisać żeby co jakiś czas lądował zmienne z pliku za pomocą source, ale to taki strzał w ciemno.
  • Odpowiedz
@shabangbinbash: Dzięki za hint, działa - ale jest to suboptymalne rozwiązanie :) pogrzebie jeszcze po kodzie bash.

sh
gdb -batch -p $(pgrep -f $script_name) -ex "call (void*)source_file(\"$function_file\",0)"
  • Odpowiedz
@shabangbinbash: parse_and_execute też dział, nawet wyświetla błędy składni ( ͡ ͜ʖ ͡)

sh
(gdb) call (int)parse_and_execute("function _age { echo test; ((i++)) }","/tmp/abc",0
)
/tmp/test: /tmp/abc: line
  • Odpowiedz