使用管道运行C程序,如何在终端输入字符串?

时间:2014-01-16 18:38:17

标签: bash shell

这个问题来自Programming Pearls第2版,第2栏,第20页。它是一个简单的C程序,它使用sign.c和squash.c文件来排序和压缩字谜(在不同的行上显示每组字谜)。

要测试程序,我必须在终端中运行以下行:

sign <dictionary | sort | squash > gramlist

而不是使用文件/字典,我想输入一个小的单词/字谜列表,看看程序是否适当地排序和压缩字谜。

例如,输入以下单词作为输入

mile lime rot tor break

应该给我以下输出:

break
lime mile
rot tor

我的问题:输入这些单词作为输入的语法是什么?这些都不起作用:

sign <"mile, lime, rot, tor, break" | sort | squash > output.txt
sign <"mile lime rot tor break" | sort | squash > output.txt
sign <'mile lime rot tor break' | sort | squash > output.txt
sign <'mile, lime, rot, tor, break' | sort | squash > output.txt
sign <mile, lime, rot, tor, break | sort | squash > output.txt
sign <mile lime rot tor break | sort | squash > output.txt

sign.c和squash.c的完整代码是here

1 个答案:

答案 0 :(得分:4)

所以你知道,你用<编写的任何东西都会将文件重定向到你的程序中。由于您想直接输入字符串,因此您需要其他内容。尝试:

sign <<< "mile lime rot tor break" | sort | squash > output.txt

或:

echo "mile lime rot tor break" | sign | sort | squash > output.txt