2017-03-28 24 views
0

学校の割り当ては、Pythonスクリプトからの出力を印刷して、それを小さなcプログラムの引数として渡すことによって評価されます。残念なことに、Pythonの出力文字列にはタブが含まれており、bashはその文字列を1つではなく2つの文字列として認識します。どのようにして1つの文字列として認識させることができますか? Cプログラムを変更することはできません。bashの引数としてタブを含むPythonスクリプトの出力を渡す

#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

これは実際にはbashのみの質問です。それはPythonやCとは関係がありません –

答えて

2

引用それは1つの引数として展開していますので、Pythonの呼び出しを次のように

最小限の例がある

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

$()折り返しは二重引用符の内側と外側の間の混乱を避けるので、これはproceですあなたが望むように、

関連する問題