You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bash脚本如何实现预展示命令供用户编辑后回车执行

Bash 实现预置可编辑命令的方案

核心用Bash内置read命令的行编辑能力实现,不需要额外依赖:

  • -e 参数:启用和日常命令行一致的Readline编辑模式,支持光标移动、文本删改、常规快捷键操作
  • -i <初始文本> 参数:指定输入行预填充的内容,用户运行脚本就能直接看到预置命令,可直接在原有内容基础上修改。

完整脚本实现(create_commit.sh)

#!/bin/bash
# 预填充git commit命令,用户编辑后回车执行
read -e -i "git commit -m 'edit this message'" -p "" user_cmd
if [[ -n "$user_cmd" ]]; then
    eval "$user_cmd"
fi

使用方法

  1. 给脚本添加可执行权限:
    chmod +x create_commit.sh
    
  2. 运行脚本:
    ./create_commit.sh
    
  3. 运行后终端会直接显示预置的git commit -m 'edit this message',直接移动光标到单引号内修改提交信息,改完按回车就会自动执行提交;如果不想执行,按Ctrl+C中断,或者把整行内容清空再按回车即可。

简化为命令别名的写法

如果不想单独存脚本,可以直接在~/.bashrc(Zsh用户改~/.zshrc)里加别名,随时敲命令就能唤起:

alias gcommit='read -e -i "git commit -m '\''edit this message'\''" user_cmd && eval "$user_cmd"'

加完执行source ~/.bashrc生效,之后敲gcommit就能直接调出预置的提交命令编辑。


注意事项

  • 该方案依赖GNU Bash 4.0及以上版本的read内置命令,主流Linux发行版、macOS通过Homebrew安装的新版Bash都可正常使用,极简环境的低版本shell/非Bash shell可能不支持-i参数。
  • 脚本里用eval执行用户编辑后的命令,支持管道、重定向等复杂shell语法,和直接在终端敲命令的行为完全一致。

内容的提问来源于stack exchange,提问作者Lincoln D

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 14:57:17