linux + bash +将参数导出到数据文件的新文件中

我有Linux机器红帽5.1,我问以下问题

我的目标是根据data_file.txt从answer_file.txt创build新的output_file.txt文件

正如我们在这里看到的,我首先运行data_file.txt并从文件中导出所有参数,然后尝试将所有answer_file.txt打印到新文件output_file.txt

所以我会从data_file.txt得到这个新的参数文件,但我不成功 – 🙁

请指教如何将data_file.txt中的参数导出到answer_file.txt中,然后用正确的值创build新文件?

备注 – 我使用bash,而且我不想使用sed或awk来执行此任务,而且我不想更改原始data_file.txt或answer_file.txt的内容(我需要从bash shell执行Job的简单方法)

[root@test1a /var/tmp]# more data_file.txt arg1=a arg2=b arg3=c [root@test1a /var/tmp]# more answer_file.txt param1=$arg1 param2=$arg2 param3=$arg3 [root@test1a /var/tmp]# . ./data_file.txt [root@test1a /var/tmp]# export arg1 arg2 arg3 [root@test1a /var/tmp]# cat ` . ./answer_file.txt ` >/var/tmp/output_file.txt -bash: ./answer_file.txt: line 4: unexpected EOF while looking for matching `'' -bash: ./answer_file.txt: line 5: syntax error: unexpected end of file ( my target is to get: Example of expected results from output_file.txt ) more answer_file.txt param1=a param2=b param3=c 

您需要在文件的每一行上运行eval 。 尝试这个:

 $ cat data_file.txt arg1=a arg2=b arg3=c $ cat answer_file.txt param1=$arg1 param2=$arg2 param3=$arg3 $ . data_file.txt $ eval "echo \"$(cat answer_file.txt)\"" param1=a param2=b param3=c # alternative, shorter command $ eval "echo \"$(<answer_file.txt)\"" param1=a param2=b param3=c 

对不起,我没有更充分地充实,我有点累(社区,随意编辑这个,并介入)。 希望这会让你开始你需要的东西:

 $ cat data.txt arg1=a arg2=b arg3=c export arg1 arg2 arg3 $ cat answer.txt echo param1=$arg1 param2=$arg2 param3=$arg3 $ eval `cat data.txt`;eval `cat answer.txt` param1=a param2=b param3=c