在bash中传递包含制表符作为参数的Python脚本的输出

时间:2017-03-28 05:14:09

标签: bash

通过打印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!

1 个答案:

答案 0 :(得分:2)

引用Python调用,将其扩展为单个参数:

./a.out "$(python -c 'print "a\tb"')"

$()包装避免了内部和外部双引号之间的混淆,因此按照您的意愿处理。