Portál AbcLinuxu, 26. října 2025 21:47
Pěkný nápad. Napiš jim feature request.
"Jim" myšleno zřejmě do bashe...
mycomplete() {
local cur=$2 len=${#2} oifs=$IFS
[ $len -gt 0 ] || return
IFS=$'\n'
COMPREPLY=($(compgen -A file -- $cur | sort))
if [ ${#COMPREPLY[*]} -gt 1 -a \
"${COMPREPLY[0]:0:$((len+1))}" != "${COMPREPLY[1]:0:$((len+1))}" ]
then
echo
echo "${COMPREPLY[*]}" \
| head -10 \
| sed 's/^\(.\{'$len'\}\)\(.*\)/\1\x1b[1;32m\2\x1b[0m/'
echo -n "\$ $COMP_LINE"
fi
IFS=$oifs
}
complete -o filenames -F mycomplete ls cp mv rm cat
$ ls -l li<TAB> libord linux-2.4.36.2.tar.bz2 linux-2.6.24.4.tar.bz2 linux-2.6.25.4.tar.bz2 linux-2.6.25.tar.bz2 linux-2.6.29.1.tar.bz2 $ ls -l lin<TAB> $ ls -l linux-2.<TAB> linux-2.4.36.2.tar.bz2 linux-2.6.24.4.tar.bz2 linux-2.6.25.4.tar.bz2 linux-2.6.25.tar.bz2 linux-2.6.29.1.tar.bz2 $ ls -l linux-2.6<TAB> $ ls -l linux-2.6.2<TAB> linux-2.6.24.4.tar.bz2 linux-2.6.25.4.tar.bz2 linux-2.6.25.tar.bz2 linux-2.6.29.1.tar.bz2 $ ls -l linux-2.6.25<TAB> $ ls -l linux-2.6.25.<TAB> linux-2.6.25.4.tar.bz2 linux-2.6.25.tar.bz2 $ ls -l linux-2.6.25.t<TAB> $ ls -l linux-2.6.25.tar.bz2 <ENTER> -rw-r--r-- 1 root root 48601689 2008-04-18 20:58 linux-2.6.25.tar.bz2
RedHat dolů.
Ale jinak se jen řetězec rozdělí dle délky na dvě části. První se vypíše normálně a druhá se obarví.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.