如何在CLion中配置管道实现程序输出传递至目标程序?
在CLion中实现管道命令输入的两种方法
方法一:用临时文件配合启动前任务(适合依赖CLion调试功能的场景)
如果需要保留CLion对myexe的调试支持,可通过临时中转文件实现:
- 打开「运行/编辑配置」,找到你的
myexe运行配置 - 切换到「启动前」标签,点击「添加」→「运行外部工具」→「编辑工具」,新建两个工具:
- 清理旧临时文件:
- 名称:
Clean temp schifo file - 程序:
rm - 参数:
-f /tmp/schifo_temp.tsv - 工作目录:留空或填
myexe所在目录
- 名称:
- 提取指定文件到临时文件:
- 名称:
Extract schifo.tsv - 程序:
bash - 参数:
-c "tar -xOzf ../data/schifo.tar.gz schifo.tsv > /tmp/schifo_temp.tsv" - 工作目录:设置为
myexe所在的目录(确保../data路径正确)
- 名称:
- 清理旧临时文件:
- 回到
myexe的配置页,在「输入重定向」区域选择「从文件读取」,路径填/tmp/schifo_temp.tsv - 运行配置时,CLion会先清理旧文件、提取数据,再让
myexe读取临时文件作为输入
方法二:直接执行Shell管道命令(简单直接,无需临时文件)
如果不需要调试,只想快速执行命令,可直接创建Shell脚本配置:
- 打开「运行/编辑配置」,点击左上角「+」→「Shell Script」
- 配置以下内容:
- 名称:
Run myexe with tar pipe - 脚本路径:
bash - 脚本参数:
-c "cd /绝对路径/to/your/myexe && tar -xOzf ../data/schifo.tar.gz schifo.tsv | ./myexe" - 工作目录:可留空,让参数里的
cd命令切换到正确路径
- 名称:
- 保存后直接运行这个配置,就会执行你需要的管道命令,无需解压整个压缩包
注意:两种方法都要确保路径正确,比如
../data/schifo.tar.gz的相对路径是相对于执行命令时的工作目录,若不确定可改用绝对路径。
内容的提问来源于stack exchange,提问作者desperate
相关产品推荐
相关产品推荐

