Если имя переменной не является статической строкой (или, скорее, :Если часть перед =
содержит что-либо недопустимое в имени переменной ), то присвоение не распознается как таковое.
Вам нужноeval
:
tmp_var="$(my_def_get_hddstaus "$hdd")"
eval status_$hdd=\""$tmp_var"\"
редактировать
Вы можете echo
значение снова использовать eval
или косвенно:
eval echo \"\$status_$hdd\"
или
var_name="status_$hdd"
echo "${!var_name}"
Можете ли вы изменить свой сценарий?
Если можете, в начале скрипта получите два нужных вам параметра, например:
remote_host="$1"
ansible_host="$2"
Затем в вашем плейбуке вы можете вызвать свой скрипт таким образом:
myscript {{remote_host}} {{ansible_host}}
Давненько я не играл с ansible. Убедитесь, что синтаксис правильный:)