【问题标题】:Put command string on the bash prompt将命令字符串放在 bash 提示符上
【发布时间】:2019-10-24 00:04:20
【问题描述】:

假设我在终端中有 bash 提示:

host:~/dir $

如何将命令写入用户可以选择运行的提示?也许有一种方法可以使用 readline(3) 在 shell 提示符下输入命令?

换句话说,我想在这里写一个命令:

 host:~/dir $ <write some command here> 

我试过了:

echo "write some command here" > /dev/stdin

但这并不完全奏效 - 它似乎没有把它放在提示符上,有没有办法做到这一点?

我正在尝试做的事情 - 当您使用 bash 按下向上/向下箭头键时,您之前的命令会显示在提示符中,我正在尝试从另一个历史文件中读取并将其放在提示。

【问题讨论】:

  • 是的,这是一个错字,但修复后不起作用,似乎没有把它放在提示符上
  • 你应该先找到目标终端的ptsps。假设 pts 是 2 那么你可以做echo "write some command" &gt; /dev/pts/2

标签: bash shell command-prompt stdin


【解决方案1】:

在不了解您的用例是什么的情况下,我首先将您指向whiptail 的方向。它是大多数 Linux 系统的基本安装的一部分,它允许您向用户显示一个输入框,甚至允许该框预先填充默认值。一个非常简单的示例大致如下所示:

whiptail --input "Want to run this?" 8 78 "<write command here>" --title "Dialog box title here"

如果您想深入了解,primer available on WikiBooks 可以很好地介绍其大部分基本功能。

【讨论】:

  • 当您使用 bash 按下上/下箭头键时,您之前的命令会出现在提示符中,我正在尝试从另一个历史文件中读取并将其放在提示符上。我会将其添加到 OP 中。
  • 好吧,当你想调用你正在使用的终端的历史文件时,通常你会使用!!作为最近的命令,!-2作为最后一个命令的下一个命令,如果你想特别搜索一些东西,那么!?somecommand。您可以将它们放入我的whiptail 示例的 部分,它会为用户显示它们。这更接近你想要做的吗?
猜你喜欢
  • 2016-05-19
  • 1970-01-01
  • 1970-01-01
  • 2015-06-18
  • 2014-09-09
  • 2015-12-07
  • 1970-01-01
  • 2011-09-13
  • 1970-01-01
相关资源
最近更新 更多