我想浏览一个文本文件,每行包含一个命令。我想读取每一行,执行每个命令,然后将输出保存到文件中。
给我提问的脚本部分是:
echo COMMAND LOG > $dest/command.log
echo ====== >> $dest/command.log
while IFS= read -r v
do
echo ====== >> $dest/command.log
echo COMMAND: $v >> $dest/command.log
echo ======OUTPUT====== >> $dest/command.log
$v >> $dest/command.log
echo ====== >> $dest/command.log
done < "$commands"
除了“echo $ PATH”之外的所有内容都能很好地生成:
======
COMMAND: echo $PATH
======OUTPUT======
$PATH
有没有让它正常工作?提前谢谢。
答案 0 :(得分:1)
这是预期的,因为你是逐行获取文件,你有字符串,而不是变量。 $v
是一个"$PATH"
字符串,就是全部。
您必须eval
您的字符串才能获得关联变量的值:
echo COMMAND: $(eval $v) >> $dest/command.log