`

Get当前shell程序路径

阅读更多
shell中取得脚本所在目录的一个重要命令是dirname $0,

在实际应用中比pwd命令更方便,

basename $0 获得文件名
dirname $0 获得文件所在目录名

#!/bin/sh
#change to the directory in which this script resides
cd `dirname $0`
#just to show it worked right
pwd
#save
TOPDIR=`pwd`


补充:如果使用soft link方式运行脚本,如何获得真实脚本所在的目录呢?
答案在: http://stackoverflow.com/questions/59895/can-a-bash-script-tell-what-directory-its-stored-in


解决方案就是这个脚本:
SCRIPT_PATH="${BASH_SOURCE[0]}";
if ([ -h "${SCRIPT_PATH}" ]) then
  while([ -h "${SCRIPT_PATH}" ]) do SCRIPT_PATH=`readlink "${SCRIPT_PATH}"`; done
fi
pushd . > /dev/null
cd `dirname ${SCRIPT_PATH}` > /dev/null
SCRIPT_PATH=`pwd`;
popd  > /dev/null
分享到:
评论

相关推荐

    Python 获取windows桌面路径的5种方法小结

    前两个方法是通过注册表来获取当前windows桌面绝对路径,比较推荐使用第一个,因为不需要安装额外的扩展,其他的可以了解下 1.用内置的winreg(推荐) import _winreg def get_desktop(): key = _winreg.OpenKey(_...

    RockefellerWages:洛克菲勒工资可视化的重新设计

    该项目需要和python 2.7+(可作为python在shell路径)。 另外,假定下面执行的命令与标准实用程序位于Unix shell中(如果在OSX上不用担心,如果在Windows上-尝试git bash)。 安装和构建项目 首先克隆存储库并安装...

    补丁模块(带源码)InlinePatch,Hook,内存DLL注入等等

    在确定当前程序被调试后 可使用此函数让系统蓝屏。 慎重使用! .子程序 内存补丁, 逻辑型, 公开, 根据进程名补丁内存,patch已经运行的可执行文件 .参数 进程名, 文本型, , '完整的文件名,注意大小写 .参数 地址,...

    MobaXterm Pro 11.0.3816

    New feature: new experimental local terminal package “CygUtils64.plugin” comes with ZSH shell, 64-bit console utilities and improved apt-get packages manager – activate it from global settings, ...

    UbuntuChina12

    12.2 利用apt-get管理软件包 321 12.2.1 安装软件包 323 12.2.2 系统的更新与升级 324 12.2.3 删除软件包 325 12.2.4 安装本地存储介质中的 ??软件包 325 12.2.5 sources.list配置文件 325 12.3 利用aptitude管理...

    Excel VBA实用技巧大全 附书源码

    02019获取当前宏代码运行的工作簿路径 02020获取包括完整路径的工作簿名称 02021获取工作簿的基本名称 02022获取工作簿的文档属性 02023获取工作簿的保护状态 02024判断工作簿是否创建了自定义工具栏 02025将工作簿...

    Ubuntu权威指南(2/2)

    12.2 利用apt-get管理软件包 321 12.2.1 安装软件包 323 12.2.2 系统的更新与升级 324 12.2.3 删除软件包 325 12.2.4 安装本地存储介质中的 ??软件包 325 12.2.5 sources.list配置文件 325 12.3 利用aptitude管理...

    Ubuntu权威指南(1/2)

    12.2 利用apt-get管理软件包 321 12.2.1 安装软件包 323 12.2.2 系统的更新与升级 324 12.2.3 删除软件包 325 12.2.4 安装本地存储介质中的 ??软件包 325 12.2.5 sources.list配置文件 325 12.3 利用aptitude管理...

    mtga-wine:使用Wine在Mac上运行MTG Arena

    生成和更新脚本会在下载和安装之前获取当前的MTGA应用程序版本,以确保该应用程序是最新的。 要求 葡萄酒稳定版3.0.5 XCode命令行工具 自制酒 石英 提取物 善意 酒鬼 get q 快速开始 为了快速起步,在确认已安装...

    2009 达内Unix学习笔记

    pwd 显示当前所在目录,打印当前目录的绝对路径。 cd 进入某目录,DOS内部命令 显示或改变当前目录。 cd回车/cd ~ 都是回到自己的主目录。 cd . 当前目录(空格再加一个点)。 cd .. 回到上一级目录(空格再加两个点...

    新版Android开发教程.rar

    程序可以采用 JAVA 开发,但是因为它的虚拟机 (Virtual Machine) Dalvik ,是将 JAVA 的 bytecode 转成 自 己的格式,回避掉需要付给 SUN 有关 JAVA 的授权费用。 对手机制造者的影响 � Android 是款开源的移动计算...

    cmd操作命令和linux命令大全收集

    tftp -i 自己IP(用肉机作跳板时这用肉机IP) get server.exec:server.exe 登陆后,将“IP”的server.exe下载到目标主机c:server.exe 参数:-i指以二进制模式传送,如传送exe文件时用,如不加-i 则以ASCII模式(传送...

    Linux命令笔记

    7:apt-get 安装卸载程序 第二部分:文件系统 文件系统/文件系统 0:tree 以树形结构显示文件目录结构 1:分区和文件系统 2:文件系统常用命令 df [选项][挂载点] //统计文件系统占情况 du [选项][目录或文件] //...

    C#浏览器编程,学习使用

    //可以查看页面源文件和网页链接状态的功能(可供分析网站的路径),具备// //常用的门户引擎搜索功能。 // //******************************************************************// namespace CSharp浏览器 { ...

    指挥官:在Windows,Linux和osx以及节点上通过ssh和docker测试命令行界面

    在简单的yaml文件中为命令行脚本和程序定义独立于语言的测试。 它可以在windows , osx和linux上运行 它可以验证本地计算机,ssh主机和docker容器 它是一个自包含的二进制文件-无需安装大量的lib或语言 编写起来既...

    JAVA上百实例源码以及开源项目

     util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...

    JAVA上百实例源码以及开源项目源代码

     util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...

    网管教程 从入门到精通软件篇.txt

    GetRight:GetRight未完成的下载文件 GHO:Norton 克隆磁盘映像 GID:Windows 95全局索引文件(包括帮助状态) GIF:CompuServe位图文件 GL:动画格式 GRP:程序管理组 H HEX:Macintosh BinHex2.0文件 HLP...

Global site tag (gtag.js) - Google Analytics