首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Bash输出误解

Bash输出误解
EN

Stack Overflow用户
提问于 2015-12-04 03:45:20
回答 3查看 63关注 0票数 0

如果这是重复的,我很抱歉,我找不到这个问题的任何其他例子。

我正在尝试写一个用于自然语言识别的程序,我读了一篇博客文章,其中有人试图做类似的事情,它建议使用这两行来捕获输出。

代码语言:javascript
运行
复制
#capture output of script
./get-language.py | tee preptxt

我不知道这段代码要做什么。我假设它正在运行get语言文件,但是在我看来语法不正确。有人能给我指个方向吗?

EN

回答 3

Stack Overflow用户

发布于 2015-12-04 03:52:08

在Unix系统上,您可以使用/path/to/my/executable运行可执行文件。这不是特定于python的。由于.是当前工作目录,因此您将执行位于当前目录中的get-language.py脚本。

但是,要让脚本正常工作,您需要做两件事:

1.添加shebang

这是脚本的第一行,它告诉shell要使用哪个程序。要使用PATH中的第一个python解释器,请使用:

代码语言:javascript
运行
复制
#!/usr/bin/env python

2.添加权限以使您的脚本可执行:

你需要允许执行你的脚本。这可以使用chmod来完成

代码语言:javascript
运行
复制
chmod +x myscript.py

最后一部分是所谓的管道操作。如果你像这样调用两个程序:

代码语言:javascript
运行
复制
$ program_a | program_b

program_a的输出(stdout)被馈送到program_b

票数 5
EN

Stack Overflow用户

发布于 2015-12-04 03:47:31

这是一个shell的东西,不是Python。.是当前目录;您将从那里运行get-language.py

票数 2
EN

Stack Overflow用户

发布于 2015-12-04 03:48:14

这不是一行python,而是一个shell脚本。

它正在运行一个名为get-language.py的脚本(我假设在该博客的其他地方对它进行了描述,并执行实际的语言处理),然后它通过unix命令行程序tee“管道”输出,该程序将输出存储在一个文件中。

管道获取一个程序的输出,并将其用作另一个程序的输入。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34074822

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档