У меня возникла проблема, когда я не могу выполнить команду в строке, которая читается в файле. Я выполнив следующий код:bash выполнить команду в строке из ввода?
red=`tput setaf 1`
reset=`tput sgr0`
string=$(sed "${line_num}q;d" $file)
printf "%s" "$string"
Edit: для ясности, строка в $file
на line_num
является ${red}tin2${reset}
и выход я получаю это:
${red}tin2${reset}
Если я вместо этого сделать string="${red}tin2${reset}"
вывод будет просто tin2
(цвет красного текста). Поэтому я не уверен, почему $ {red} не выполняется в моем первом случае, когда кажется, что он сохраняется в строке.
Добавить ** exec $ string ** после строки printf. –
Не работает: строка 14: exec: $ {red} tin2 $ {reset}: не найдено – mtveezy
Извините, я имел в виду ** eval ** Я думал в perl, что очень похоже. –