如何从bash shell stdin执行脚本代码?

时间:2013-08-28 08:37:14

标签: python bash shell

我想从bash标准输入执行像python这样的脚本代码,因为我不想先将脚本写入文件。怎么办? 如果我想从bash标准输入运行python代码,如:

#!/usr/bin/env python

print 'hello world'

$ cat mycode.py | bash -s

但它不起作用。错误显示:

Warning: unknown mime-type for "hello world" -- using "application/octet-stream"

错误:没有这样的文件“hello world”

2 个答案:

答案 0 :(得分:4)

但它不起作用。错误显示: 警告:“hello world”的未知mime-type - 使用“application / octet-stream”错误:没有这样的文件“hello world”

对于cource,bash不知道命令hello world,系统建议安装一些东西。以下可以工作

python -c 'print "ls -l"' | bash

答案 1 :(得分:1)

作为变体,您可以使用与此方案类似的内容:

$ cat test.py 
#!/usr/bin/python

import sys

if sys.version_info[0] == 2:
    sys.stdout.write("ls -l")

$ python test.py | bash
итого 4
-rw-rw-r-- 1 miha miha 91 авг.  28 12:21 test.py
$ chmod +x test.py
$ ./test.py | bash
итого 4
-rwxrwxr-x 1 miha miha 91 авг.  28 12:21 test.py