使用bash echo命令输入python one liner

时间:2014-03-03 16:48:30

标签: python bash echo stdin

我正在尝试使用echo将一个字符串输入到Python one liner中,然后在字符串上执行Caeasar的Cipher。

我的导师给我的一个例子就是这个。

~ $ echo "Hello Holly." | python -c "import sys; [print(line) for line in sys.stdin]"

输出结果为:Hello Holly.

当我在“get get:

”中键入命令时
File "<string>", line 1
 import sys; [print(line) for line in sys.stdin]
                  ^
SyntaxError: invalid syntax

如果有人可以向我指出错误,我将不胜感激。我在Centos 6上使用Python 2.6。

感谢。

2 个答案:

答案 0 :(得分:5)

在Python 2中print是一个语句,而不是一个函数。试试这个:

echo "Hello Holly." | python -c "import sys; print [line for line in sys.stdin]"

或者,您可以使用以下内容打印纯文本(感谢@mgilson):

echo "Hello Holly." | python -c "import sys; print ' '.join([line for line in sys.stdin])"

答案 1 :(得分:0)

当你的教练使用python 3时,看起来你正在使用python2。