这个问题来自《编程珍珠》第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 的完整代码在这里
所以
你知道,你用<
编写的任何内容都会将文件重定向到你的程序中。由于您想直接输入字符串,因此您需要其他内容。尝试:
sign <<< "mile lime rot tor break" | sort | squash > output.txt
或:
echo "mile lime rot tor break" | sign | sort | squash > output.txt