c++ - 基于模板的shell脚本生成命令

标签 c++ bash templates shell code-generation

我想要实现的目标

  • 用户会提供一个远程执行的命令。命令(远程执行协议(protocol))可以是 SSH/RSH...等。所以我希望它成为配置文件或模板文件的一部分(假设参数在协议(protocol)中是固定的),如下例 -

template.cfg 文件(由用户配置):

ssh $ip $commandList  
  • 我会在另一个数据文件中生成一个值列表,其中包含 IP 地址和命令列表。喜欢

    10.182.215.214|echo $UNAME
    10.251.142.142|echo $SHELLNAME
    
  • 我想要一个名为 driver.sh 的脚本,它在执行时会使用从模板到另一个执行脚本的命令生成实际的脚本/脚本 - execute。 sh

问题

  1. 如何根据模板/插件生成脚本(可以随意提供命令)?
  2. 如果数据是在在线应用程序 (C/C++) 中生成的,除了正常的基于文件的操作(从 cfg 文件读取并更新 execute.sh)是否有更好的方法?

最佳答案

1.

while IFS=\| read ip commandList
do  eval echo $(<template.cfg)
done <data >execute.sh

您可能想在 data 文件中引用变量扩展。

2。 由于您希望用户提供的命令成为配置文件的一部分,因此除了从 cfg 文件中读取外别无他法;另一方面,您可以直接执行生成的命令,而不是将它们写入 execute.sh

关于c++ - 基于模板的shell脚本生成命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11686582/

相关文章:

c++ - 为什么我不能第二次调用 std::mismatch 函数?

java - 如何使用java执行shell脚本

c++ - 遍历具有 int 类型的模板化 C++ 函数

c++ - 为什么将 '<' 当作 'operator<' 而不是一个标记来包围模板参数呢?

c++ - 数组或函数左值可以转换为右值吗?

c++ - 继承模板赋值运算符

c++ - vector 析取

Bash/ksh 子字符串删除

bash - 使用 'time' 在 bash 中计时并发进程

java - 关于通用报告引擎的建议