Есть ли способ скомпилировать скрипт оболочки и вывести встроенные определения его вызываемых функций?
В частности, я хочу принять все вызовы функций, проанализировать их аргументы и встроить их объявление, используя расширенные переменные.
Например, взяв этот скрипт:
a() { b "$1" "$1"; }
b() { c; echo "$1 $2"; }
c() { echo C; }
i=0
a "$((i++))"
и вернув:
a() { echo C; echo 1 1; }
Обратите внимание, что аргумент, предоставленный a
, вычисляется до вызова функции, чтобы датьвывод echo 1 1
в конце (поэтому 1
передается вместо передачи определения $((i++))
)