获取shell脚本自身所在目录的Shell脚本分享
前几天写的七牛的参赛demo,用bash写了一个便捷安装的脚本,涉及到了路径相关的判断,从stackoverflow,加上自己的实践整理一下。
简单版
下面是一个最简单的实现,可以解决大多数问题,缺陷是对于软链接显示的是软链接所在的目录
lineos:false
#!/bin/bash DIR="$(cd"$(dirname"$0" )"&&pwd )"
完善版
这个版本解决了使用ln-stargetlinkName创造软链接无法正确取到真实脚本的问题。
lineos:false
#!/bin/bash SOURCE="$0" while[-h"$SOURCE" ];do#resolve$SOURCEuntilthefileisnolongerasymlink DIR="$(cd-P"$(dirname"$SOURCE" )"&&pwd )" SOURCE="$(readlink"$SOURCE")" [[$SOURCE!=/* ]]&&SOURCE="$DIR/$SOURCE"#if$SOURCEwasarelativesymlink,weneedtoresolveitrelativetothepathwherethesymlinkfilewaslocated done DIR="$(cd-P"$(dirname"$SOURCE" )"&&pwd )"