打赏

星辰大海ゞ

That which does not kill us makes us stronger!

导航

linux 下 `dirname $0`

在命令行状态下单纯执行 $ cd `dirname $0` 是毫无意义的。因为他返回当前路径的"."。
这个命令写在脚本文件里才有作用,他返回这个脚本文件放置的目录,并可以根据这个目录来定位所要运行程序的相对位置(绝对位置除外)。
在/home/admin/test/下新建test.sh内容如下:

  1. cd `dirname $0`
  2. echo `pwd`

然后返回到/home/admin/执行

  1. sh  test/test.sh

运行结果:

  1. /home/admin/test

这样就可以知道一些和脚本一起部署的文件的位置了,只要知道相对位置就可以根据这个目录来定位,而可以不用关心绝对位置。这样脚本的可移植性就提高了,扔到任何一台服务器,(如果是部署脚本)都可以执行。

 

举例说明: 脚本名称叫test.sh 入参三个: 1 2 3 
运行test.sh 1 2 3后
$*为"1 2 3"(一起被引号包住)
$@为"1" "2" "3"(分别被包住)
$#为3(参数数量)

 

posted on 2014-12-23 17:29  星辰大海ゞ  阅读(370)  评论(0编辑  收藏  举报