使用bash echo命令输入到python单行代码中

4 投票
2 回答
7062 浏览
提问于 2025-04-17 20:39

我想用echo命令输入一个字符串,然后在Python的一行代码中对这个字符串进行凯撒密码加密。

我的老师给我的一个例子是这样的。

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

输出应该是:Hello Holly.

但是当我输入这个命令时,我得到了:

File "<string>", line 1
 import sys; [print(line) for line in sys.stdin]
                  ^
SyntaxError: invalid syntax

如果有人能告诉我哪里出错了,我会非常感激。我在Centos 6上使用的是Python 2.6。

谢谢。

2 个回答

0

看起来你在用Python 2,而你的老师在用Python 3。

6

在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])"

撰写回答