cdd(){
clear
case "$1" in
"h" ) cd /media/15extended/home ;;
"d" ) cdd h; cdd dTa ;; #2011.08.26
"r" ) cdd h; cdd Txt/records ;;
* ) cd "$1" ;;
esac
ls
}
cdd r的实际运行結果是 clear -> cd 主文件夹 -> ls -> clear -> cd 记录文件夹 -> ls -> ls 最后重复了
----------------------
回3楼,也不行,还是重复,看来递归调用自身这个函数只是看起来简单,我绝望了,改回去了
#last modified on 2011.08.26
cdd(){
if [ "$1" = "h" ]; then cd /media/15extended/home; fi
if [ "$1" = "d" ]; then cd /media/15extended/home/dTa; fi
if [ "$1" = "r" ]; then cd /media/15extended/home/Txt/records; fi
cd "$1" 2>/dev/null
clear
ls
}
为什么会重复显示
- 我就是我2
- 帖子: 1215
- 注册时间: 2008-12-13 10:55
- 来自: the Earth
- 联系:
Re: 为什么会重复显示


苏东坡问佛印道:“人人皆念观世音菩萨,观世音菩萨念谁?”
佛印答道:“念观世音菩萨。”
苏东坡诧异:“为何亦念观世音菩萨?”
曰:“求人不如求己。”
自然灋則
dropbox 誰好奇,誰來點
勞碌一生又如何,虛度一生又如何,你過得開心嗎?人活著就要開心嘛!
佛印答道:“念观世音菩萨。”
苏东坡诧异:“为何亦念观世音菩萨?”
曰:“求人不如求己。”
自然灋則
dropbox 誰好奇,誰來點
勞碌一生又如何,虛度一生又如何,你過得開心嗎?人活著就要開心嘛!
-
- 帖子: 919
- 注册时间: 2009-07-01 22:04
Re: 为什么会重复显示
cdd(){
clear
case "$1" in
"h" ) cd /media/15extended/home && ls ;;
"d" ) cdd h; cdd dTa ;; #2011.08.26
"r" ) cdd h; cdd Txt/records ;;
* ) cd "$1" && ls ;;
esac
}
#这样试试
clear
case "$1" in
"h" ) cd /media/15extended/home && ls ;;
"d" ) cdd h; cdd dTa ;; #2011.08.26
"r" ) cdd h; cdd Txt/records ;;
* ) cd "$1" && ls ;;
esac
}
#这样试试
bash不如perl精妙,学不到lisp的皮毛,远不够c++强悍,不过可以用。
-
- 帖子: 6548
- 注册时间: 2008-10-31 22:12
- 系统: 践兔
- 联系:
Re: 为什么会重复显示
代码: 全选
Associative arrays are created using declare -A name.
代码: 全选
declare -A directories
directories[h]=...
directories[r]=...
...
ccdd ()
{
if [ "${directories[$1]}" ] ; then
cd "${directories[$1]}"
else
cd "$1"
fi
ls
}
代码: 全选
] ls -ld //
-
- 帖子: 919
- 注册时间: 2009-07-01 22:04
Re: 为什么会重复显示
#你这clear放在函数里会造成错觉:
kose5@kose5-Aspire-4552:~$ cat tmp4.sh
#!/bin/bash
cdd(){
cd
case "$1" in
"h" ) cd /media/15extended/home && echo $PWD && ls;;
"d" ) cdd h; cdd dTa ;; #2011.08.26
"r" ) cdd h; cdd Txt/records ;;
* ) cd "$1" && echo $PWD && ls;;
esac
}
clear
cdd "$1"
kose5@kose5-Aspire-4552:~$ ./tmp4.sh r
/media/15extended/home
15e
/home/kose5/Txt/records
recod
kose5@kose5-Aspire-4552:~$
#测试正常。
kose5@kose5-Aspire-4552:~$ cat tmp4.sh
#!/bin/bash
cdd(){
cd
case "$1" in
"h" ) cd /media/15extended/home && echo $PWD && ls;;
"d" ) cdd h; cdd dTa ;; #2011.08.26
"r" ) cdd h; cdd Txt/records ;;
* ) cd "$1" && echo $PWD && ls;;
esac
}
clear
cdd "$1"
kose5@kose5-Aspire-4552:~$ ./tmp4.sh r
/media/15extended/home
15e
/home/kose5/Txt/records
recod
kose5@kose5-Aspire-4552:~$
#测试正常。
bash不如perl精妙,学不到lisp的皮毛,远不够c++强悍,不过可以用。
-
- 帖子: 919
- 注册时间: 2009-07-01 22:04
Re: 为什么会重复显示
kose5@kose5-Aspire-4552:~$ ./tmp4.sh /bin
/bin
bash chgrp dnsdomainname hostname ls netstat rbash sync zcat
bunzip2 chmod domainname init-checkconf lsmod nisdomainname readlink tailf zcmp
busybox chown dumpkeys initctl2dot mkdir ntfs-3g rm tar zdiff
bzcat chvt echo ip mknod ntfs-3g.probe rmdir tempfile zegrep
bzcmp cp ed kbd_mode mktemp ntfs-3g.secaudit rnano touch zfgrep
bzdiff cpio egrep kill more ntfs-3g.usermap run-parts true zforce
bzegrep dash false less mount open sed ulockmgr_server zgrep
bzexe date fgconsole lessecho mountpoint openvt setfont umount zless
bzfgrep dbus-cleanup-sockets fgrep lessfile mt pidof setupcon uname zmore
bzgrep dbus-daemon fuser lesskey mt-gnu ping sh uncompress znew
bzip2 dbus-uuidgen fusermount lesspipe mv ping6 sh.distrib unicode_start
bzip2recover dd grep ln nano plymouth sleep vdir
bzless df gunzip loadkeys nc plymouth-upstart-bridge static-sh vmmouse_detect
bzmore dir gzexe login nc.openbsd ps stty which
cat dmesg gzip lowntfs-3g netcat pwd su ypdomainname
kose5@kose5-Aspire-4552:~$
/bin
bash chgrp dnsdomainname hostname ls netstat rbash sync zcat
bunzip2 chmod domainname init-checkconf lsmod nisdomainname readlink tailf zcmp
busybox chown dumpkeys initctl2dot mkdir ntfs-3g rm tar zdiff
bzcat chvt echo ip mknod ntfs-3g.probe rmdir tempfile zegrep
bzcmp cp ed kbd_mode mktemp ntfs-3g.secaudit rnano touch zfgrep
bzdiff cpio egrep kill more ntfs-3g.usermap run-parts true zforce
bzegrep dash false less mount open sed ulockmgr_server zgrep
bzexe date fgconsole lessecho mountpoint openvt setfont umount zless
bzfgrep dbus-cleanup-sockets fgrep lessfile mt pidof setupcon uname zmore
bzgrep dbus-daemon fuser lesskey mt-gnu ping sh uncompress znew
bzip2 dbus-uuidgen fusermount lesspipe mv ping6 sh.distrib unicode_start
bzip2recover dd grep ln nano plymouth sleep vdir
bzless df gunzip loadkeys nc plymouth-upstart-bridge static-sh vmmouse_detect
bzmore dir gzexe login nc.openbsd ps stty which
cat dmesg gzip lowntfs-3g netcat pwd su ypdomainname
kose5@kose5-Aspire-4552:~$
bash不如perl精妙,学不到lisp的皮毛,远不够c++强悍,不过可以用。
-
- 帖子: 174
- 注册时间: 2010-11-09 3:06