gpt4 book ai didi

bash - 根据路径中的最后两个目录更改终端标题

转载 作者:行者123 更新时间:2023-11-29 09:28:27 27 4
gpt4 key购买 nike

每次进入新目录(使用 cd 时)我都想更改标题,但只显示最后 2 个目录。我在工作中使用 tcsh,在家里使用 bash。例如:如果我在文件夹 ~/work/stuff 中写:cd 1.1,我希望我的新标题是 stuff/1.1.

我已经知道每次更改文件夹时如何更改标题:

alias cd 'cd \!*; echo "\033]0;`pwd`\a"'

而且我知道如何只获取最后两个目录:

pwd | awk -F / -v q="/" '{print $(NF-1)q$NF}'

问题是如何将这两者结合起来,或者说如何以不同的方式进行?它不必通过别名到 cd。

最佳答案

我所做的是使用以下代码创建一个名为 titleRename.tcsh 的脚本文件:

#!/bin/tcsh -f

set fullpath = "`pwd`\a"
set newTitle = `echo $fullpath | awk -F / '{OFS="/"; if(NF > 2){printf $(NF-2);printf "/"; printf $(NF-1); printf "/"; print $NF;}else print $0}'`
echo "\033]0;$newTitle"

它将 pwd 与 awk 分开,只获取最后 3 个目录,然后打印到选项卡名称。然后我在 .alias 文件中添加了以下内容:

alias cd    'cd \!*; <dir of script file>/titleRename.tcsh'

现在,每当我 cd 到不同的目录时,标题名称会自动更改:)

关于bash - 根据路径中的最后两个目录更改终端标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18228371/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com