我想从需要参数的C ++代码中执行脚本。这个参数是我需要提供参数的txt文件的上下文。如何在C ++中使用参数调用此脚本?
这是我的代码:my_script.sh需要一个参数,我想通过捕获my_file.txt获取此参数的值。我的问题是可以从C ++解释cat /tmp/my_file.txt
const char * my_array[] = {
"/dir/my_script.sh `cat /tmp/my_file.txt` "
.
.
.
};
答案 0 :(得分:2)
当读取一行时,由shell(bash
)解释的反引号或任何其他构造,然后在转换参数后执行命令 。当您执行命令时,可以使用其参数启动它,或者可以使用system
或bash -c
构造来解析参数,但不会发生此转换。
我强烈建议您使用以脚本名称作为参数的shell脚本,并使用反引号或$()
调用您想要的任何命令,因为脚本由shell和shell执行知道如何处理反引号和$()
。
你可以有一个中间脚本,比如说/path/to/laucher
包含
#! /bin/bash
/dir/my_script.sh `cat $1`
在您的c ++代码中,您只需致电:
system("/path/to/launcher /tmp/my_file.txt");
答案 1 :(得分:0)
我从来没有听说过C ++字符串或char数组中的后引号来调用任意代码。
您确定不想要system() function吗?