Shell脚本学习第一篇

shell脚本学习。

常见的脚本学习:

### DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

上面的脚本是非常常见的一句。什么意思呢?
<!--more-->

看下面的分解脚本:

{% highlight HTML %}
#!/bin/bash
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
echo "$DIR"

S0="${BASH_SOURCE[0]}"
DIRNAME0="$( dirname "$S0")"
DIR0="$( cd "$DIRNAME0" && pwd)"

echo "$S0"
echo "$DIRNAME0"
echo "$DIR0"
{% endhighlight %}

copy上面的脚本生成test.sh,将sh文件放到了DeskTop桌面目录。我当前在`~`目录里,执行了命令./DeskTop/test.sh可以看到输出:

* /Users/vokie/Desktop

* ./Desktop/test.sh

* ./Desktop

* /Users/vokie/Desktop

分析一下:

* S0的变量值是从当前目录指向test.sh文件的相对位置。

* DIRNAME0 是获取test.sh文件相对位置的相对目录。(dirname命令是获取某个文件的相对目录)

* DIR0 是获取test.sh文件的绝对路径。(首先是用cd命令,进入test.sh文件所在的相对目录,然后执行pwd,输出当前目录的绝对路径。需要注意`&&`的含义:当前面的命令成立时,才执行后面的命令。否则直接不执行后面的命令了,所以只有当cd进入了当前脚本的路径,才去获取当前脚本的绝对路径。)

故上面那么一长串的脚本,其实就是:获取当前执行脚本所在位置的绝对路径。非常实用。赞一个!

posted @ 2015-10-09 15:58  Mr轨迹  阅读(251)  评论(0编辑  收藏  举报