`
dylan.wu
  • 浏览: 134130 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

在shell脚本运行时如何获取自己所在的目录

 
阅读更多

在shell脚本中有时需要用到相对路径,来减少子程序的路径配置,但是这样主程序还是需要知道自己所在的路径。有什么办法可以自动获取主程序所在的目录,而不用配置呢。总结了一下,运行脚本的方式有以下几种(假如主程序名为"test.sh")

1、./test.sh     or    sh test.sh

2、test.sh  (路径配置在了环境变量中)

3、../bin/test.sh   or sh ../bin/test.sh

4、/usr/local/bin/test.sh     or     sh /usr/local/bin/test.sh

 

总结一下其实就三种情况,一、使用相对路径。二、使用绝对路径。三、在环境变量的路径中搜索。而第三种情况最后实际会变成第二种情况(在centos下是这样的)。这样就好办了。代码如下

if [ $(echo $0 | grep '^/') ]; then
    path=$(dirname $0)
else
    path=$(pwd)/$(dirname $0)
fi
echo $path

 虽然在相对路径中,打印出来有点丑陋,但至少是可以工作了。

 

 

分享到:
评论

相关推荐

    openstack安装包(shell脚本配置文件)

    linux下openstack的安装包,修改配置文件后可以直接运行shell脚本,进行安装,亲测可行,附详细说明。

    shell递归输出文件名和目录名的方法

    简单写了个shell脚本实现 function echo_name(){ for file in `ls $1` do echo $1/$file if [ -d $1/$file ] then echo_name $1/$file fi done } echo_name $1 运行 sh test.sh script 运行结果 以上这篇...

    《UNIX shell范例精解(第4版)》配套光盘

    《UNIX shell范例精解(第4版)》配套光盘。 环境要求: Linux或Unix操作系统。 光盘内容: 书中每个章节的代码范例和数据文件可在相应的目录中找到。目录如下: ...3.进入光盘所在的目录,运行shell脚本。

    在python shell中运行python文件的实现

    最近在学习flask开发,写好程序后需要在python shell中运行测试功能。专门抽时间研究了下,总结以防止以后遗忘。 这是测试文件的结构,python_example主文件夹,下面有example.py和一个subexample子文件夹,我要分别...

    dropbox-shell:一个BASH脚本,用于通过Dropbox在远程计算机上运行脚本程序

    投递箱一个BASH脚本,用于通过Dropbox在远程计算机上运行... 然后运行以下命令以在您的计算机上执行脚本: dropbox_shell.sh 或dropbox_shell.sh {path} 命令文件夹中的所有文件将被执行。 输出将被写入输出中的日志文

    spring boot/spring cloud项目启动脚本,默认名称:start.sh

    #上传至目录后,进入脚本所在目录执行命令 chmod +x start.sh #脚本使用: sh start.sh start sh start.sh stop sh start.sh restart sh start.sh status 或者: ./start.sh start ./start.sh stop ./start.sh ...

    aws-redshift-shell:用于 AWS Redshift 集群配置、创建和管理的 Shell 脚本

    在哪个子网组中?使用哪个安全组?等) 集群的参数组名称bin/redshift.sh自动创建最终数据快照并将这些信息保存在 JSON 文件中。 在集群启动期间,脚本将恢复这些信息。 从 crontab 运行,它可以帮助您节省大量资金...

    Simple-WebM:Mac的非常简单的Shell脚本,可将视频转换为WebM剪辑

    简单WebM OSX的非常简单的Shell脚本,可将视频转换为webm剪辑。 只需将剪辑拖放到图标上,即可将其转换为WebM视频(对于GAF而言是完美的)。 还包括带有自定义设置的脚本,用于设置: 自定义分辨率自定义CRF /质量...

    linux大作业报告

    设计shell脚本程序,运行结果如下: 当用户输入相应的数字执行相应的功能。 2、设计shell脚本程序,在屏幕上输出操作系统的信息,包括计算机名、Linux分发版本名称、Linux内核版本和当前的IP地址。 3、设计shell脚本...

    WinCE脚本解析程序(写写文本就能做很多意想不到的事情)

    考虑到在程序运程过程中可能要对程序所在分区(或磁盘)进行格式化(或者是移除SD卡)等操作,故添加了一项“自我复制到内存中运行”的功能,即启动后先检测工作目录是不是在内存虚拟出来根目录"\"下,如果不是则先...

    rss-roller:用于生成和更新 rss 提要的 Shell 脚本

    当你第一次运行代码时,它会生成一个点文件~/.rss-roller.rc并且它会问你一些关于 RSS 文件的默认问题。 在这些字段中写入多少取决于您,但它们是创建有效 rss 文件所必需的。 最后两个问题将询问您 RSS 文件应该在...

    JDK Linux一键安装脚本

    JDK Linux一键安装脚本 Linux服务器,作者使用centos7操作系统,支持裸机安装JDK或者没有安装过JDK的用户安装JDK。 运行说明 1. 拥有**root**用户使用权 2. 将安装脚本和JDK安装包(tar.gz包)...文件在脚本同级目录。

    定时ftp上传文件

    每日定时上传当前运行系统日志服务,配置当前每日本地产生的数据文件所在路径。再配置上传的远程 ftp路径就可以使用。需要在服务端配置好ftp服务。

    shell:一个根据linkMap文件计算Xcode里各个工程代码占安装包大小的工具

    该脚本功能主要是把各个工程所占可执行文件的大小统计...该脚本运行过后才能运行ProjectStatistic.sh脚本ProjectStatistic.sh:使用方法:传入一个文件目录(工程所在目录),会把每个工程所使用的类所占用的size全部

    deepin linux 下的网络下载工具“我要下载"-能下载浏览器/迅雷下载失败的文件

    这是我用linux脚本写的网络下载工具(linux shell脚本),把“我要下载”这个文件复制到/usr/bin目录下,并在命令行下允许如下命令以修改该文件的权限: sudo chmod +x /usr/bin/我要下载 之后,在终端下运行如下...

    Shell $0, $#, $*, $@, $?, $$和命令行参数的使用

    特殊变量列表 变量 含义 $0 当前脚本的文件名 ...传递给脚本或函数的参数。...传递给脚本或函数的参数个数。...运行脚本时传递给脚本的参数称为命令行参数。命令行参数用 $n 表示,例如,$1 表示第一个参

    Bash-DFT-Tools:结合基于量子化学程序高斯和SLURM的计算系统使用的bash脚本

    Bash DFT工具 这是bash shell脚本的集合,用于提交作业,创建输入文件以及从完成的计算中提取数据。...这是提交高斯计算时所需的唯一文件,因为如果未在此提交脚本所在的文件夹中找到高斯16运行脚本

    vbs脚本整站打包程序

    拿到后台shell后上传pack.vbs运行后可直接将所在目录打包为Packet.mdb文件,将Packet.mdb下载到本地后,用openPack.vbs将文件夹释放出来

    ARM_Linux启动分析.pdf

    一般情况下,rc启动脚本都位于/etc/rc.d目录下,rc.sysinit中最常见的动作就是激活交换分区,检查磁盘,加载硬件模块,这些动作无论哪个运行级别都是需要优先执行的。仅当rc.sysinit执行完以后init才会执行其他的...

    psyhawk:一个Psyclan服务器操作脚本

    用户要做的就是更新模板目录中的相应文件,然后运行psyhawk脚本 在运行之前配置脚本变量 在运行psyhawk之前,脚本src中有一些必须由用户设置的变量: SERVER_DIR:所有服务器配置目录所在的目录。 TEMPLT_DIR:...

Global site tag (gtag.js) - Google Analytics