我想要这样的东西:
"vivek@grishma:~/xxx/yyy/zzz/src$"
显示为
"vivek@grishma:datasource$"
我将以某种方式将预定义的“数据源”用作上面长路径的别名。
使用alias命令作为
" alias datasource='~/xxx/yyy/zzz/src'"
对导航很有用,但它并不能消除提示中的冗长路径。
这可能吗?
PS-我不希望它只是“ vivek @ grishma:”,因为那样的话每次我应该运行pwd来知道我的工作目录时。
这样可以:
PS1='\u@\h:$(
case $PWD in
$HOME/xxx/yyy/zzz/src) echo "datasource ;;
*) echo "\w" ;;
esac
)\$'
这也使您可以灵活地定义其他特殊目录。
别名不会在这里为您提供帮助。
为了减少重复,请将所有特殊dirs放入一个数组中,并使用它来生成别名和提示。将所有这些放入您的〜/ .bashrc中:
declare -A labels=(
[$HOME/xxx/yyy/zzz/src]=datasource
[$HOME/foo/bar]=baz
)
for path in "${!labels[@]}"; do
alias "${labels[$path]}"="$path"
done
function path_label () {
local IFS=:
if [[ ":${!labels[*]}:" == *:"$PWD":* ]]; then
# we're in a "known" dir
echo "${labels[$PWD]}"
else
return 1
fi
}
PS1='\u@\h:$( path_label || echo "\w" )\$'
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句