Chinaunix
标题:
求解bash_porfile语句
[打印本页]
作者:
hydRAnger
时间:
2010-07-23 18:02
标题:
求解bash_porfile语句
$ vi .bash_profile
function mkdircd () { mkdir -p "$@" && eval cd "\"\$$#\""; }
加入这个可以让mkdircd实现mkdir和cd同时进行,但是求解cd后面那一大串参数怎么理解?
作者:
blackold
时间:
2010-07-23 18:06
回复
1#
hydRAnger
引用与参数展开。
作者:
hydRAnger
时间:
2010-07-23 18:10
请问黑哥,能不能逐字符展开讲解下呢?
作者:
blackold
时间:
2010-07-23 18:22
回复
3#
hydRAnger
详细的没有办法讲了。大概说一下。
首先这是个函数,废话。
mkdirp -p "$@" #创建多个目录,如果成功,则执行eval。
eval cd "\"\$$#\"" 就是将工作目录改变到最后的一个目录。
作者:
blackold
时间:
2010-07-23 18:23
LZ都走了,还讲什么?
作者:
bbgg1983
时间:
2010-07-23 18:27
悲剧了
作者:
saintdragon
时间:
2010-07-23 19:07
小黑继续讲呀!
楼主是代表广大人民群众提问的!
作者:
wild_li
时间:
2010-07-23 20:08
黑哥一直无所不能.
作者:
iori809
时间:
2010-07-23 20:08
回复
5#
blackold
太让黑哥伤心了~没事黑哥。走了LZ
还有我们陪着你
作者:
hydRAnger
时间:
2010-07-24 00:10
回复
5#
blackold
Sorry...下午有事被叫走了…~还是谢谢黑哥了,实在不好意思啊…
作者:
hydRAnger
时间:
2010-07-24 00:18
回复
5#
blackold
eval cd "\"\$$#\"" 就是将工作目录改变到最后的一个目录。
那个,再请教下,就是cd 后面这些参数是怎么断句的?cd "" 里面的那对“”是转义作为cd参数的一部分对吧?那之后\$$#这个又怎么理解呢?相当于cd $($#这个变量的值)这样?
作者:
BangBull
时间:
2010-07-24 12:19
$# 为参数个数,, \$$# , 为最后一个参数, cd \$$# 就是 cd 到就最一个了
作者:
hydRAnger
时间:
2010-07-24 19:54
回复
12#
BangBull
理解了,多谢赐教
作者:
iori809
时间:
2010-07-25 09:31
回复
2#
blackold
黑哥我做了个测试
这个似乎是等$@等执行完了才判断后面的
相当于一个循环啊~而且得是前面的都成功了才行
黑哥千万不要伤心~我们会永远陪着你呵呵
作者:
blackold
时间:
2010-07-26 09:39
回复
14#
iori809
没错啊,你说得对。
作者:
iori809
时间:
2010-07-26 09:43
回复
15#
blackold
像黑哥这样的大拿~能每天坚持来真是太不容易了
其实这些问题对于黑哥来说早已经没有任何挑战了
在此向黑哥致敬
作者:
blackold
时间:
2010-07-26 09:47
回复
16#
iori809
呵呵。
很多高手都经常来啊,只是不经常水,想向他们学习都难。
这里的环境很好
作者:
blackold
时间:
2010-07-26 09:53
之前还真没注意mkdir的返值,看了文档,了解又多了些。
function mkdircd () { mkdir -p "$@" && eval cd "\"\$$#\""; }
如果目录不存在则创建目录,如果目录已经存在(mkdir依然是成功的,因为有-p),当然就不用再创建了,之后将工作目录切换到最后一个目录。
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2