1. dirname - strip non-directory suffix from file name,翻译成白话就是,从输入的字符串中将目录截取出来,它不会去检查目录是否存在。
例如,dirname /a/b/c/d ,运行结果是/a/b/c
2. `command` ,将命令的执行结果作为字符串返回。也可以写成$(command)
3. $0,命令行的第一个参数,代表命令本身
4. dirname $0,将命令的路径截取出来
5. `dirname $0`,返回命令的路径
6. cd `dirname $0`,进入命令所在的目录
那位兄弟说了,pwd不是很简单,干嘛写的这么复杂dirname $0。
pwd取的当前路径,反应的是你在什么路径下执行命令,和我们想取得命令所在的目录还是有很大区别。
例如我们有个脚本/home/admin/bin/a.sh
echo $(dirname $0) echo $(pwd)
在/home/admin/bin下执行
./a.sh
结果是:
.
/home/admin/bin
这两个结果都是正确的。
在/home/admin目录下执行
bin/a.sh
结果是:
bin
/home/admin
可以看到区别了。不管在什么目录下执行命令,$(dirname $0)总是能命令所在的路径。
没有评论:
发表评论