我遇到了一个问题,我无法在从文件读入的字符串中执行命令。我正在执行以下代码:
red=`tput setaf 1`
reset=`tput sgr0`
string=$(sed "${line_num}q;d" $file)
printf "%s" "$string"
修改:为清楚起见,$file
line_num
处的字符串为${red}tin2${reset}
我得到的输出是:
${red}tin2${reset}
如果我改为string="${red}tin2${reset}"
,则输出将只是tin2
(红色文字颜色)。所以我不确定为什么$ {red}在第一种情况下没有执行,因为它似乎在字符串中存储相同。
答案 0 :(得分:0)
好吧,发现了一个丑陋的解决方案。将printf "%s" "$string"
设为字符串,将eval
设为字符串。
red=`tput setaf 1`
reset=`tput sgr0`
string=$(sed "${line_num}q;d" $file)
string2="printf \"%s\" \"$string\""
eval $string2