获取shell脚本自身所在目录的Shell脚本分享

本文分享了一个使用Bash编写的脚本,该脚本能处理硬链接和软链接的路径解析问题,确保能够准确获取到脚本的真实路径。通过递归方式解决了由ln -s创建的软链接所导致的路径问题。
前几天写的七牛的参赛demo,用bash写了一个便捷安装的脚本,涉及到了路径相关的判断,从stackoverflow,加上自己的实践整理一下。
简单版
下面是一个最简单的实现,可以解决大多数问题,缺陷是对于软链接显示的是软链接所在的目录
lineos:false
复制代码 代码如下:

#!/bin/bash
DIR="$( cd "$( dirname "$0"  )" && pwd  )"
完善版
这个版本解决了使用ln -s target linkName创造软链接无法正确取到真实脚本的问题。
lineos:false
复制代码 代码如下:

#!/bin/bash
SOURCE="$0"
while [ -h "$SOURCE"  ]; do # resolve $SOURCE until the file is no longer a symlink
    DIR="$( cd -P "$( dirname "$SOURCE"  )" && pwd  )"
    SOURCE="$(readlink "$SOURCE")"
    [[ $SOURCE != /*  ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
done
DIR="$( cd -P "$( dirname "$SOURCE"  )" && pwd  )"

 

转载于:https://www.cnblogs.com/archoncap/p/6082413.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值