问题标签 [interactive-shell]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
102 浏览

java - 通过 ProcessBuilder 的(阻塞)交互式 shell

我构建了一个交互式EXE,这意味着你可以不断地向它发送新命令,它会处理它们。

Java根据这个答案可以实现自动化。但是,在发送命令时,代码不会等到命令完成。相反,它会立即将控制权返回给调用者,这可能会导致race conditions:如果发送的命令应该写入文件,则可能在访问文件之前尚未创建文件。如何发送命令,读取输出,并且一旦再次预期某些输入命令,sendCommand()调用就会返回?

同时最好还返回过程输出。这将是非交互式 shell 命令的默认行为,该命令在执行完成后终止。read()无限期地阻塞,直到进程终止,我不想硬编码预期进程输出的长度或类似的黑客来规避这个缺点。

0 投票
0 回答
93 浏览

bash - 如何正确编写可以利用 bash 的自动完成机制的交互式 shell 程序

(请帮我调整标题和标签。)

当我跑步时,connmanctl我得到一个不同的提示,

并且可以使用不同的命令,例如services, technologies, connect, ...

我想知道这东西是怎么运作的。

我知道,一般来说,更改提示可能只是更改变量的问题PS1。但是,仅此一项(阅读“命令connmanctl更改PS1并返回)对命令行的功能根本没有任何影响(我仍将处于同一bash进程中)。

实际上,可用命令已更改的事实在我看来就像connmanctl提示符一直在运行的证明connmanctl>,并且在运行时connmanctlwhile输入了一个带有语句的循环read,然后是一堆命令处理输入。

在我想象的后一种情况下,甚至不需要更改PS1,因为这connmanctl>条线可以简单地通过echo -n "connmanctl> ".

这种好奇心背后的原因是我正在尝试为connmanctl. 我已经写好了,它按预期工作,除了我不知道如何正确设置自动完成功能,我认为为了这样做,我首先需要了解什么是正确的方法来编写交互式外壳脚本。

0 投票
0 回答
190 浏览

java - 我已经构建了一个交互式 shell java 应用程序。我想用 Junit 5 测试它

我已经使用 Scanner 类构建了一个交互式 Java 应用程序。我想用 Junit 5 测试它。

在搜索了之后,我编写了用于模拟 shell 的测试用例。测试用例针对第一个命令运行并停留在 main 方法中。它不会返回控制台。由于它,我的后续命令没有执行。

单元测试 testCreateSuccess() 只运行 create 命令,然后一直等待下一个输入。控件没有返回到测试以发送下一个命令。为什么它在这里表现不同?当我运行 shell 时,我可以逐个输入命令。如何在测试用例中实现相同的行为?我需要使用 Junit 运行和验证 5-6 个命令。任何帮助表示赞赏。我还想从 txt 文件中处理这些命令。

0 投票
1 回答
3319 浏览

php - fopen:无法打开流:没有这样的文件或目录 - 但文件/目录存在

编辑:最初我简化了原始 csv 文件(从com1_webscrapersolution_new_email-10-02-20.csvto products.csv)以最小化/简化问题,但事实证明文件名在这里很重要,并且是解决方案的关键。我已经以这种方式编辑了这个问题,以使这一点显而易见。我还添加了一个没有已知解释的答案,我希望其他人可以提供。

对于以下问题,我可以确认

  • /folder/custom_csv_parsing_functions.php存在,相关摘录如下
  • /c1/products.csv /c1/com1_webscrapersolution_new_email-10-02-20.csv 存在,可以在这里查看完整

我在 bash 中运行 PHP 作为php -f file.php.

file.php

抛出错误:

fopen(' /c1/ products.csv com1_webscrapersolution_new_email -10-02-20.csv'):无法打开流:第 58 行的 /folder/custom_csv_parsing_functions.php 中没有此类文件或目录

摘自/folder/custom_csv_parsing_functions.php

如果文件products.csv com1_webscrapersolution_new_email-10-02-20.csv 存在,并且设置为 777 权限,为什么 PHP 报告“fopen(' /c1/ products.csv com1_webscrapersolution_new_email -10-02-20.csv'):无法打开流:没有这样的文件或目录”?

此外,我可以确认直接在 bash 交互式 shell 中运行 PHP 确实成功:

成功的输出是/c1/com1_webscrapersolution_new_email-10-02-20_enc_hd.csv(可以在这里查看)。

那么为什么在 bash as 中运行 PHP 时它不起作用php -f file.php呢?

0 投票
1 回答
99 浏览

php - PHP的交互模式可以在命名空间中运行代码吗?

在 PHP 的交互模式下,我尝试了以下操作:

这会导致致命错误:

但是,以下代码在 PHP 文件中执行时不会出现错误:

因此,是否可以在交互模式下以某种方式设置命名空间?或者,是否所有处于交互模式的代码都在全局空间中运行,而不管先前的命名空间定义如何?

0 投票
1 回答
686 浏览

python-3.x - 为什么以小数倒数会导致 xxx.9999999999999999999x?

我编写了一段代码,每 0.100 秒倒计时 1/10(大约。它必须大于 0.100,否则脚本会忽略它)。但是,输出如下所示:

为什么?有解决办法吗?

0 投票
1 回答
91 浏览

bash - 如何将位置参数传递给交互式 bash 会话

我想像这样启动一个交互式 bash shell:

所以在 shell 会话中,我有 $1=1, ...

我没有找到任何选项来达到这个效果。

我试过这个,认为它可能有效:

但事实并非如此。

0 投票
1 回答
61 浏览

php - 我可以从 PHP 的 Interactive Shell 中的必需/包含文件中“使用”命名空间吗?

假设我在 PHP 交互式 shell 中运行以下命令,需要一个实用函数文件,其中包含命名空间下的所有代码utils

我可以毫无问题地使用完全限定的命名空间调用函数,但是,当我尝试use/alias 命名空间时,就好像它从未发生过一样,并尝试在别名命名空间错误下调用函数,说函数未定义。

我应该如何use在 PHP 的交互式外壳中使用命名空间?如果根本不可能,有什么特别的原因吗?

0 投票
1 回答
2555 浏览

python - vscode ipython 交互式内核启动和执行慢

在我的工作笔记本电脑(带有 VPN 连接)上,在重新启动内核或 VSCode 几次后,python 扩展和交互式窗口/内核的启动速度非常慢。互联网连接的下载速度为 250mbps,上传速度为 25mbps(这不是问题)。

Ipython内核没有启动

重新启动笔记本电脑后,一切都运行得很快(内核在几秒钟内启动)。重新启动 VSCode 没有相同的效果。

开始放慢执行代码行

我不知道要寻找问题。

有谁知道问题可能是什么?如果您需要更多信息,我愿意提供!

0 投票
1 回答
34 浏览

python-3.x - 退出脚本内的交互式提示并移至下一行

嘿,我正在尝试将交互式命令的输出打印到 python 脚本内的文件中,然后转到下一行。

我不确定如何实现这一目标。我努力了:

仅供参考,可以使用“mnamer”从脚本内部导入和调用 mnamer

上面的命令将我需要的信息记录在一个文件中,但我需要它通过提示符并读取下一行代码。

有没有一种python特定的方式来做到这一点?