通过打印Python脚本的输出并将其作为参数传递给小型c程序来对学校作业进行评分。不幸的是,python的输出字符串包含一个选项卡,bash将其识别为两个字符串而不是一个字符串。如何将其识别为一个字符串?请注意,我无法修改C程序。
最小的例子如下:
#include <stdio.h>
#include <string.h>
int main(int argc, char **argv)
{
if (argc != 2) {
puts("Fail!");
return 1;
}
puts("Success!");
return 0;
}
输出:
$ ./a.out $(python -c 'print "\'a\tb\'"')
Fail!
答案 0 :(得分:2)
引用Python调用,将其扩展为单个参数:
./a.out "$(python -c 'print "a\tb"')"
$()
包装避免了内部和外部双引号之间的混淆,因此按照您的意愿处理。