我有一个Bash脚本,它会返回一个命令。我想执行这个脚本,并让它自动将结果打印在下一行的提示符后面。如果可以替换当前行中的脚本调用,那也是一个选择。这样我就可以在执行之前编辑命令。
这是否可以在Bash终端中实现?
#!/bin/bash
tmux set-buffer 'ls -l'
tmux paste-buffer &
#!/bin/bash
tmux set-buffer 'ls -l'
{ sleep .25; tmux paste-buffer; } &
除了user3035772的评论中提供的“使用临时文件”选项之外,另一个选项是使用shell的历史记录。
假设创建输出的命令是shell命令(或者您可以确定其输出仅是以后要运行的命令),则可以使用history -s
将命令存储在历史记录中,然后在命令行上调用它以编辑它(或使用fc
来这样做)。
history -s 'echo whatever you "want your" command to be'
然后使用fc
在您的$EDITOR
中进行编辑,或按上箭头或Ctrl-p将历史记录加载到当前输入行中。
trap 'rm -f -- "$cmd_file"' EXIT; cmd_file=$(mktemp); printf %s\\n "$command" >"$cmd_file"; ${EDITOR:-nano} -- "$cmd_file" && (. "$cmd_file")
- user3035772${EDITOR:-vim}
;D - hek2mgl