¡¾Ô´´¡¿compspec for cd
cd Õâ¸öÃüÁî´ó¼Ò¿Ï¶¨¶¼ºÜÊìϤÁË, ÓÐʱºò½øÈëµ½Ò»¸öºÜÉîµÄĿ¼ÖÐ, È»ºóÏë»Øµ½ËûµÄµÚ N ¼¶¸¸Ä¿Â¼Ê±, ×ÜÊÇÒªÇúöà ../../../.. , ºÜÊÇ·³ÈË, Ϊ´Ë, °³Ð´ÁËÒ»¸ö compspec, Èç¹ûÄãÒªÏòÉÏÌø N ¼¶Ä¿Â¼, Ö»ÐèÒªÊäÈë N+1 ¸öµã (`.'), È»ºó°´Ò»Ï TAB ¼ü, ÕâЩµãµã¾Í»á×Ô¶¯»»³ÉÏìÓ¦µÄ ../../../.. , ·½±ãÁËÐí¶à[font=Courier][code]
#! /bin/bash
#
# File: compspec.cd
#
_cd()
{
local CMD=$1
local CUR=$2
local PRE=$3
local len=${#CUR}
if [ $len -lt 3 -o "${CUR/.../}" = "$CUR" ]; then
return
fi
local i nDots newCur next
for ((i = 0, nDots = 0; i < len; ++i)); do
next=${CUR:i:1}
if [ "$next" != . ]; then
newCur="$newCur$next"
nDots=0
else
if ((++nDots > 2)); then
newCur="$newCur/.."
else
newCur="$newCur."
fi
fi
done
COMPREPLY[0]="$newCur"
COMPREPLY[1]="$newCur/dummy"
}
complete -d -F _cd cd
[/code][/font]
[[i] ±¾Ìû×îºóÓÉ dearvoid ÓÚ 2007-10-16 21:29 ±à¼ [/i]] ²»Çå³þÈçºÎʹÓÃ
ÎÒÊÇ source ÁË¡£¡£¡£ Ó÷¨Ê¾Àý:
[font=Courier][quote]
[color=blue]-(dearvoid@LinuxEden:tty3)-(~/tmp)-
[17832 0][/color] [color=red]; source compspec.cd
[/color][color=blue]-(dearvoid@LinuxEden:tty3)-(~/tmp)-
[17832 0][/color] [color=red]; complete -p cd
[/color]complete -d -F _cd cd
[color=blue]-(dearvoid@LinuxEden:tty3)-(~/tmp)-
[17832 0][/color] [color=red]; cd openldap-2.3.32/doc/man/man3/
[/color]# ½ÓÏÂÀ´ÎÒÏë½øÈë openldap-2.3.32/ ÏÂµÄÆäËüĿ¼
[color=blue]-(dearvoid@LinuxEden:tty3)-(~/tmp/openldap-2.3.32/doc/man/man3)-
[17832 0][/color] [color=red]; cd .... # ´Ëʱ°´ TAB ¼ü
[/color][color=blue]-(dearvoid@LinuxEden:tty3)-(~/tmp/openldap-2.3.32/doc/man/man3)-
[17832 1][/color] [color=red]; cd ../../.. # ÔÙ°´¼¸´Î TAB ¼ü
[/color][color=blue]-(dearvoid@LinuxEden:tty3)-(~/tmp/openldap-2.3.32/doc/man/man3)-
[17832 0][/color] [color=red]; cd ../../../
[/color]build/ clients/ contrib/ doc/ include/ libraries/ servers/ tests/
[color=blue]-(dearvoid@LinuxEden:tty3)-(~/tmp/openldap-2.3.32/doc/man/man3)-
[17832 0][/color] [color=red]; cd ../../../clients/
[/color][color=blue]-(dearvoid@LinuxEden:tty3)-(~/tmp/openldap-2.3.32/clients)-
[17832 0][/color] [color=red]; o
[/color][/quote][/font]
Áí×¢: Ö»ÒªÄãµÄÊäÈëÖк¬ÓÐÁ¬ÐøÁ½¸öÒÔÉϵĵãµã, Õâ¸ö compspec ¾ÍÆð×÷ÓÃ
[[i] ±¾Ìû×îºóÓÉ dearvoid ÓÚ 2007-10-16 21:30 ±à¼ [/i]]
Ò³:
[1]