关闭

详解在bash脚本中如何获取自身路径(转)

220人阅读 评论(0) 收藏 举报

原文地址:http://www.2cto.com/os/201312/267533.html

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

这是stackoverflow上推荐的方法

http://stackoverflow.com/questions/4774054/reliable-way-for-a-bash-script-to-get-the-full-path-to-itself

我看了两遍,不明觉厉

后来改了一下:

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

S0="${BASH_SOURCE[0]}"

DIRNAME="$( dirname "$S0")"

DIR="$( cd "$DIRNAME" && pwd)"

echo "$S0"

echo "$DIRNAME"

echo "$DIR"

运行脚本,输出:

./build/jenkins/tesh.sh

./build/jenkins

/Users/heliclei/.jenkins/jobs/dailybuild-develop-ios/workspace/build/jenkins

S0是脚本相对于当前目录的路径,是相对路径

再用dirname命令得到脚本的目录名,也是相对路径

用cd命令切换到脚本所在目录,再执行pwd命令,

就得到了脚本所在目录的绝对路径

推荐一本学习bash脚本的好书《Bash Beginners Guide》


0
0
查看评论

详解在bash脚本中如何获取自身路径

详解在bash脚本中如何获取自身路径
  • u012973744
  • u012973744
  • 2013-12-23 21:47
  • 1607

获取shell自身路径

获取shell执行时,当前的路劲,不管是./dirname还是/aa/bb/dirname DIR=$(cd "$(dirname "$0")";pwd)
  • zengzhihao
  • zengzhihao
  • 2017-05-12 10:35
  • 145

JS获取自身所在文件的路径

很多时候我们都需要在js文件中获取该文件的详细路径,以便根据其他文件与该js的相对位置计算并设置其他一些文件如图片或样式或脚本的目录路径。我们一般都这样做:      假设外部js文件的文件名为:test.js,则在test.js中都这样写: var js=docu...
  • truelove12358
  • truelove12358
  • 2013-10-30 18:03
  • 1920

在DLL中获取自身的路径

很多时候,dll并不一定和exe放在同一路径,在dll中有可能会需要本身的当前路径,那么可以用以下方法: 1. 获取dll本身的句柄【摘取自: http://blog.csdn.net/yaosan/article/details/3459756】:    ...
  • wk89665944
  • wk89665944
  • 2016-03-31 15:47
  • 143

DLL中如何获取自身的路径

问题:DLL中如何获取DLL自身所在的文件夹,而不是主调程序的。用GetCurrentDirectory获取的是exe主调程序所在的目录,不符合我的要求;用GetModuleFileName只能在DllMain中才能获取到,因为DllMain第一个参数hInstance就是DLL模块局并,而GetM...
  • jiangqin115
  • jiangqin115
  • 2015-05-01 00:59
  • 8325

关于在COM组件中,如何获得组件自身所在路径及组件名称

获取路径主要有两个函数:GetCurrentDirectory和GetModuleFileName。1、用GetCurrentDirectory会得到调用控件的进程的当前路径,而不是控件自身的路径。2、用GetModuleFileName,如果第一个参数为NULL,则还是得到调用控件的进程的文件路径...
  • scq2099yt
  • scq2099yt
  • 2008-03-20 15:13
  • 651

获得当前 程序(.exe) 以及 动态库(.dll) 所在路径

一、 获取当前程序所在路径 BOOL CLicenseCtrlDlg::GetAppPath(void) { CString strAppPath; // 保存结果 TCHAR szModuleFileName[MAX_PATH]; // 全路径名 TCHAR drive[_MAX_DRIV...
  • dongdan_002
  • dongdan_002
  • 2015-01-07 10:56
  • 2459

C++在dll中获取自身路径(非exe调用路径)

#include "stdafx.h" #include #include #include using namespace std; HMODULE GetSelfModuleHandle() { MEMORY_BASIC_INFORMATION mbi; ...
  • d_a_r_k
  • d_a_r_k
  • 2016-08-24 11:07
  • 1943

dos环境下获取完整路径中的文件名

折腾了大半个晚上,总算找着了这个问题的解决方案。答案看上去是非常简单的,只要对dos命令略有研究的人应该很容易想到,可是对于我这样头次正面接触dos的人而言,可是花了九牛二虎之力! 要从一个完整的路径,比如/a/b/c/d/name.txt中获得其中的name.txt字段,其实只需要用到c...
  • techtracker
  • techtracker
  • 2010-11-01 11:13
  • 2819

获取应用程序自身路径

Application.StartupPath——获取启动了应用程序的可执行文件的路径,不包括可执行文件的名称。Environment.CurrentDirectory——获取和设置当前目录(即该进程从中启动的目录)的完全限定路径。Application.ExecutablePath——获取启动了应...
  • chinawn
  • chinawn
  • 2005-04-20 11:23
  • 1371
    个人资料
    • 访问:8616次
    • 积分:135
    • 等级:
    • 排名:千里之外
    • 原创:0篇
    • 转载:32篇
    • 译文:0篇
    • 评论:1条
    文章存档
    最新评论