bash - 用于持续检查差异的 Bash 脚本
问题描述
我有 2 个 c++ 二进制文件和一个准备解释的 java 类文件。
debug_script.sh //my script file
gen
exe
prob.class
在 debug_script 中,我的第一个目标是执行gen
. 这会将输出字符串打印到标准输出,让我们调用它EXPR
。然后字符串进入exe
并prob.class
读取由换行符分隔的标准输入。在伪代码/破碎 bash 中,这看起来像:
./exe < EXPR
java -cp . prob.class < EXPR
两者都exe
生成prob.class
一个整数标准输出,我想比较这两个整数,看看它们在无限循环中是否相等(重复整个生成过程EXPR
并将其提供给两个程序)。
如果从和中返回的两个整数不同,则循环应该中断并存储EXPR
在文件中,或者只是回显它。gen
prob.class
解决方案
您可以将输出存储在变量中并将其传递给您的其他程序,例如:
#!/bin/bash
while : ; do
gen_out=$(gen)
intone=$(./exe <<<"$gen_out")
inttwo=$(java -cp . prob.class <<<"$gen_out")
if [[ $intone != $inttwo ]]; then
echo "gen output when exe and prob.class differ: $gen_out"
echo "exe output: $intone"
echo "prob.class output: $inttwo"
break
fi
done
<<<
这里称为字符串。请参阅bash 手册。
推荐阅读
- batch-file - 如何创建批处理文件注意 windows 版本然后使用 xml 文件导入任务
- hyperlink - RST 中的增量链接
- javascript - 如何在 Datatimepicker 中获取两个日历之间的天数差异
- java - wget 返回 200/OK 而 org.apache.http.impl.client.CloseableHttpClient 返回 404/NOT_FOUND
- c# - 按类别的行的混乱分布
- r - 是否有可能使用 grid.arrange 放置地块编号/字母?
- android - 安卓壁纸服务
- c - Xcode和Visual Studio中的OpenGL结果差异
- sql-server - 更新和限制的语法不正确
- r - 将多个图与牛图对齐