Questions tagged «interactive»

6
在非交互式外壳中运行脚本?
我有一个正在运行脚本的cron作业。当我通过交互式外壳程序运行脚本(将其shash为bash)时,它可以正常工作。当脚本通过cron自身运行时,它将失败。 我的猜测是它正在使用交互式外壳程序中设置的一些环境变量。我将对脚本进行故障排除并将其删除。 进行更改后,我知道可以将脚本在cron中排队以使其正常运行,但是有一种方法可以从命令行运行脚本,但告诉它可以从cron中运行-即在非交互式环境中?

1
在旨在交互使用的功能中显示使用注释
我在中定义了许多功能.bashrc,旨在在终端中交互使用。我通常在它们前面加一个描述其预期用途的注释: # Usage: foo [bar] # Foo's a bar into a baz foo() { ... } 如果浏览源代码,这很好,但是最好type在终端中运行以快速提示该功能的作用。但是,这(可以理解)不包含注释: $ type foo foo is a function foo () { ... } 是什么让我想到:“如果这些评论持续存在以便type显示出来,那会不会很好?” 并且本着Python的文档字符串的精神,我想到了这一点: foo() { : Usage: foo [bar] : "Foo's a bar into a baz" ... } $ type foo foo …


2
在管道中使用脚本时如何读取用户输入
一般问题 我想编写一个与用户交互的脚本,即使该脚本位于管道链的中间。 具体例子 具体来说,它用file或来stdin显示行(带有行号),要求用户输入选择或行号,然后将相应的行打印到stdout。我们将此脚本称为selector。然后,基本上,我希望能够 grep abc foo | selector > myfile.tmp 如果foo包含 blabcbla foo abc bar quux xyzzy abc 然后selector向我展示(在终端上,而不是在myfile.tmp!中)带有选项 1) blabcbla 2) foo abc bar 3) xyzzy abc Select options: 之后我输入 2-3 并以 foo abc bar xyzzy abc 作为的内容myfile.tmp。 我已经启动并运行了一个选择器脚本,如果我不重定向输入和输出,则基本上可以正常运行。所以 selector foo 表现得像我想要的。但是,当像上面的示例中那样将内容管道在一起时,selector将显示的选项打印到myfile.tmp并尝试从grepped输入中读取选择。 我的方法 我尝试使用的-u标志read,如 exec 4< /proc/$PPID/fd/0 exec …

8
如何禁用Python 3.4中的新历史记录功能?
自从升级到Python 3.4之后,所有交互式命令都记录到~/.python_history。我不希望Python创建或写入此文件。 创建到的符号链接/dev/null无效,Python会删除该文件并重新创建它。该文档建议删除sys.__interactivehook__,但这也会删除制表符补全。如何禁用该历史记录文件,但仍保留制表符补全功能? 额外细节: 发行版:Arch Linux x86_64 阅读专线6.3-3 python 3.4.0-2

3
调用与控制终端断开连接的命令/脚本?
我正在研究通常以自动化流程运行的脚本的行为(例如cron,Jenkins)。脚本可以(最终)调用以交互方式运行时行为不同的命令(寻求用户输入);例如,patch将询问如何处理反向补丁,并svn询问密码,但是我需要查看当它们非交互式运行时会发生什么。 说服patch它是非交互的是相当容易的。我只需要重定向stdout成为非tty: $ </dev/null > >(cat) /path/to/myscript --args 但是,svn将连接到控制端子(如果存在);否则将连接到控制端子。编辑脚本以通过--non-interactive不是一个真正的选择,因为它来自多个层次,很难确定我是否找到了每个调用。 有没有办法在没有控制终端的情况下(因此/dev/tty不存在)非交互地调用脚本/命令?我希望stdout / stderr仍然可以转到我的终端。 (我在非交互式外壳中找到了问题“运行脚本”吗?但是该问题的答案讨论了cron和用户环境之间的差异;我已经消除了除非交互性之外的所有差异。)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.