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

如何修改bash的st函数,使其同时修改终端标题并执行指定命令

改进st函数实现标题修改+命令执行一体

改进后的st函数代码

function st() {
  if [[ -z "$ORIG" ]]; then
    ORIG=$PS1
  fi
  local title="$*"
  PS1="${ORIG}\[\e]2;${title}\a\]"
  # 执行传入的命令,保留参数的原始格式
  "$@"
  # 可选:命令执行完毕后恢复原始终端标题,取消下方注释即可
  # PS1="$ORIG"
}

关键修改说明

  • 新增local title="$*":把所有传入的参数统一作为标题内容,和原函数逻辑保持一致。
  • 使用"$@"执行命令:确保命令的参数(比如带空格的文件名、特殊选项)能被正确解析,避免参数拆分错误。
  • 可选的标题恢复:如果希望命令执行完成后自动把终端标题改回原来的样子,取消最后一行PS1="$ORIG"的注释即可。

使用示例

执行以下命令,终端标题会立即变为yarn transportation start,同时自动运行对应的命令:

st yarn transportation start

如果要执行带特殊参数的命令,比如:

st grep "error log" app.log

标题会设为grep "error log" app.log,同时正确执行grep "error log" app.log命令。

内容的提问来源于stack exchange,提问作者Piyush Chauhan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 12:15:33