ruby - Net::SSH::Shell::Process $DONTEVERUSETHIS

标签 ruby bash shell ssh

当使用 Net::SSH 在远程连接上运行命令时,它会将以下脚本添加到每个命令的末尾:

DONTEVERUSETHIS=$?; echo #{manager.separator} $DONTEVERUSETHIS; echo\"退出 $DONTEVERUSETHIS\"|sh

产生的输出看起来像:

DONTEVERUSETHIS=$?; echo 10e75e2821012645fa3a3cc08ec5de527a392af68db4c3cac63dac22d4de2a8708fcc176190817fe $DONTEVERUSETHIS; echo "exit $DONTEVERUSETHIS"|sh

这是源代码的链接 Net::SSH::Shell::Process并查看“运行”方法

谁能解释为什么总是添加这个?

它不会出现在控制台输出中,但会在解析 ~/.bash_history 时发挥作用

最佳答案

快速查看源存储库会发现 this commit :

keep the exitcode 1 available for the next command

实际上,这允许您检查 $? 的值(即 上一个 命令的 exitcode) >下一个命令。

关于ruby - Net::SSH::Shell::Process $DONTEVERUSETHIS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26410448/

相关文章:

bash - 用 bash 替换 yml 中一行的值

ruby-on-rails - Rails - 为模式用户提供和检查大小

ruby-on-rails - Ruby 3.2.3 rake 似乎不起作用 - 或者什么的。 rake 中止!无法加载此类文件

bash - 如何检查变量是否未设置并在我的 bash prelude 中使用 set -u?

bash - 通过在 bash 中重新排序模式来重命名文件

bash - 在ubuntu上的sh中将读取变量转换为小写

ruby-on-rails - View 页面中 Rails 中的简单字符串连接

mysql - rails 调试

Bash 读取行在文件中间停止

python - 如何将utf-8输出重定向到txt文件