在下一行中打印提示后面的bash脚本结果

时间:2016-01-15 12:06:05

标签: linux bash terminal

我有一个返回命令的Bash脚本。我想执行脚本并让它自动在下一行的提示后面打印结果。替换当前行中的脚本调用也是一种选择。这样我就可以在执行命令之前编辑命令。 这可以通过Bash在终端中实现吗?

2 个答案:

答案 0 :(得分:1)

如果在tmux(终端多路复用器)中运行bash,则可以使用其缓冲区函数在提示符下粘贴命令。然后,您可以在运行之前编辑该命令。这是一个简单的例子:

#!/bin/bash
tmux set-buffer 'ls -l'
tmux paste-buffer &

将paste-buffer命令放在后台让let的bash在粘贴发生之前输出提示。如果粘贴发生得太快,您可以添加亚秒级睡眠,如下所示:

#!/bin/bash
tmux set-buffer 'ls -l'
{ sleep .25; tmux paste-buffer; } &

答案 1 :(得分:0)

除了"使用临时文件" user3035772's comment另一个选项中给出的选项是使用shell的历史记录。

假设创建输出的命令是shell命令(或者您可以确定其输出您希望稍后运行的命令),您可以使用history -s来存储在历史记录中命令,然后在命令行上调用它来编辑它(或使用fc来执行此操作)。

history -s 'echo whatever you "want your" command to be'

然后使用fc$EDITOR中编辑它,或点击向上箭头或 Ctrl-p 将历史记录项加载到当前输入行。