linux中的cd "$(dirname "$0")"/是什么意思呢?
- 分析如下:
1、$0 表示当前动行的命令名,一般用于shell 脚本中
2、dirname 用于取指定路径所在的目录 ,如 dirname /home/ikidou 结果为 /home
3、cd 为切换文件夹
4、$(命令) 返回该命令的结果
5、所以结合以上分析,结果为【 切换到 脚本 所在的目录】
- 同理,在命令行状态下单纯执行 $ cd `dirname $0` 是毫无意义的。因为他返回当前路径的"."。
这个命令写在脚本文件里才有作用,他返回这个脚本文件放置的目录,并可以根据这个目录来定位所要运行程序的相对位置(绝对位置除外)。
在/home/admin/test/下新建test.sh内容如下:
cd `dirname $0`
echo `pwd`
然后返回到/home/admin/执行 sh test/test.sh
运行结果:/home/admin/test
这样就可以知道一些和脚本一起部署的文件的位置了,
只要知道相对位置就可以根据这个目录来定位,而可以不用关心绝对位置。
这样脚本的可移植性就提高了,扔到任何一台服务器,(如果是部署脚本)都可以执行。