крайне небезопасно, но: eval echo $PARAM
Я бы настоятельно рекомендовал против этого: что, если param содержит какую-нибудь деструктивную команду в обратных чертах? Либо переосмыслите свой дизайн, либо пересмотрите язык реализации.
Вы могли бы по крайней мере избежать обратных кавычек и сначала построить $()
:
NUM=100
PARAM='this is $NUM -- `rm foo` -- $(rm bar)'
param_safer=$(echo "$PARAM" | sed 's/`/\\`/g; s/\$(\([^)]\+\))/\\$\\(\1\\)/g')
eval echo "$param_safer"
выходы: this is 100 -- `rm foo` -- $(rm bar)