2 calelin calelin 于 2017.09.02 05:28 提问

linux运行以下的命令会发生什么,想问一下原因。命令如下:

python3 box.py < box.py > python3 box.py

2个回答

yujiaao
yujiaao   2017.09.02 09:00

这个取决于你的box.py里有什么内容

如 box.py:

   #!/usr/bin/env python                                                            
   # coding=utf-8                                                                   

   import sys                                                                       

   print (1+2)                                                                      

   input_str = sys.stdin.read()                                                     
   print (input_str.split())

会将第二个box.py做为stdin输入,输出重定向到 python3这个文件中
最终在当前目录下有一个文本文件python3

 3
['#!/usr/bin/env', 'python', '#', 'coding=utf-8', 'import', 'sys', 'print', '(1+2)', 'input_str', '=', 'sys.stdin.read()', 'print', '(input_str.split())']

最后一下box.py并不起作用

Runner__1
Runner__1   Rxr 2017.09.02 08:51

首先运行这一部分:python3 box.py < box.py,把box.py文件的内容作为box.py的输入,然后运行程序得到输出结果,
然后运行后面的部分:>python3 box.py,是把上一步运行得到的结果重定向给box.py运行

Csdn user default icon
上传中...
上传图片
插入图片