在C++中使用反引号来执行bash脚本
using back quotes in C++ to exec bash script
我想从我的C++代码中执行一个需要参数的脚本。这个参数是一个txt文件的上下文,我需要用cat来提供该参数。如何在C++中用参数调用此脚本?
这是我的代码:my_script.sh需要一个参数,我想通过查找my_file.txt来获得这个参数的值。我的问题是cat /tmp/my_file.txt
可以从C++中解释吗??
const char * my_array[] = {
"/dir/my_script.sh `cat /tmp/my_file.txt` "
.
.
.
};
当读取一行时,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");
我从未听说过在C++字符串或char数组中使用反引号来调用任意代码。
你确定不想要system()函数吗?
相关文章:
- 在执行其他功能的同时播放动画(LED矩阵和Arduino/ESP8266)
- 主机箱/bash 未执行 docker 映像
- -bash:/a.out:无法执行二进制文件:Exec格式错误
- Bash 代码,仅在当前可执行文件完成运行时在循环中运行可执行文件
- 如何使用gnu_parallal以运行多个可执行文件和/或bash脚本
- bash:./main:无法执行二进制文件:Exec格式错误
- C++执行执行的 bash 脚本随机停止
- 从bash而不是QtCreator执行时,QMake结果(makefile)不同
- 如何使用CMakeLists.txt为我的可执行文件设置bash中的环境变量
- 将输入值从BASH脚本传递到C 可执行文件
- 在 C 程序中执行 bash 以导出环境变量
- 在C++中执行shell命令时强制环境bash
- 从C++执行 bash 脚本并读取其输出 ubuntu sdk
- C++临时文件作为 bash 脚本执行
- bash:即使二进制和Linux是64位的,也无法执行二进制文件:Exec格式错误
- 在C++中使用反引号来执行bash脚本
- 如何从可执行文件打开bash
- C++执行bash脚本,该脚本终止并重新启动当前进程
- 如何使用 execvp 函数执行 bash 的 sudo 命令?
- 执行 bash shell 命令并提取输出 -->无效文件错误