linux 下 `dirname $0` 脚本文件放置的目录

http://www.cnblogs.com/xupeizhi/archive/2013/02/19/2917644.html

linux 下 `dirname $0`

在命令行状态下单纯执行 $ cd `dirname $0` 是毫无意义的。因为他返回当前路径的"."。
这个命令写在脚本文件里才有作用,他返回这个脚本文件放置的目录,并可以根据这个目录来定位所要运行程序的相对位置(绝对位置除外)。
在/home/admin/test/下新建test.sh内容如下:

  1. cd `dirname $0`
  2. echo `pwd`

然后返回到/home/admin/执行

  1. sh test/test.sh

运行结果:

  1. /home/admin/test

这样就可以知道一些和脚本一起部署的文件的位置了,只要知道相对位置就可以根据这个目录来定位,而可以不用关心绝对位置。这样脚本的可移植性就提高了,扔到任何一台服务器,(如果是部署脚本)都可以执行。

时间: 2024-10-24 04:02:06

linux 下 `dirname $0` 脚本文件放置的目录的相关文章

linux下用shell脚本启动可执行.jar文件并关闭的方法

话不多说,开始上代码,为了偷懒,代码只是截图了,感兴趣的朋友可以看了之后自己写,这样加深印象. 上面是小弟写的shell脚本.写的不好请见谅. 首先遇到的第一个坑 我在window下写的 然后道linux中执行,在linux死活都说俺的19行有错误,俺就不明白了,哪里有错,问了下别人,也说没错.突然有个高人问我在哪编写的,小弟回答在win下,他告诉俺执行下这个命令: dos2unix server.sh 然后小弟就执行了,说命令不存在,小弟只好安装这个,执行了以下命令 yum install d

linux下采用shell脚本实现批量为指定文件夹下图片添加水印的方法_linux shell

要实现linux下采用shell脚本批量为指定文件夹下图片添加水印,首先需要安装imagemagick: CentOS上安装: yum install ImageMagick -y Debian上安装: apt-get install ImageMagick -y 脚本: #!/bin/bash for each in /要处理的图片目录/*{.jpg,.gif} s=`du -k $each | awk '{print $1}'` if [ $s -gt 10 ]; then #convert

RedHat Linux下Oracle启动脚本的建立 dbstart oracle8.1.6

oracle|脚本 RedHat Linux下Oracle启动脚本的建立 2001-06-05 8:25发布者:Crystal 阅读次数:102 一.修改$ORACLE_HOME/bin/dbstart脚本 首先测试你的$ORACLE/bin/dbstart脚本,如果能正常启动Oracle,请跳到第二部分. 本人运行环境为RedHat7.1+Oracle8.1.6,发现dbstart脚本有问题,不能得到当前运行的Oracle的版本号.编辑dbstart,找到 STATUS=1 if [ "$VE

交叉编译-linux下gtk的库文件有很多,不知道哪一个是我用的

问题描述 linux下gtk的库文件有很多,不知道哪一个是我用的 我做的应用运行在手持终端,基于一个精简的Linux系统.用的gcc-arm-linux交叉编译工具 现在我就想搞清楚头文件和库文件在哪里,makefile脚本很复杂而且有很多文件,完全看不懂,只能凭目录名称去找...头文件在/usr/local/arm-linux/include/gtk/下库文件用locate libgtk查找有一大堆,目测有关系的有下面这些:/usr/local/arm-linux/arm-linux/lib/

linux下两台服务器文件实时同步方案设计和实现

linux下两台服务器文件实时同步方案设计和实现 假设有如下需求: 假设两个服务器: 192.168.0.1 源服务器  有目录 /opt/test/ 192.168.0.2 目标服务器  有目录 /opt/bak/test/ 实现的目的就是保持这两个服务器某个文件目录保持实时同步 实现方式: 通过rsync+inotify-tools结合来实现 需要安装软件: 1.  rsync 同步软件    在 源服务器 和 目标服务器 都需要安装      源服务器: 是rsync客户端,不需要配置  

关于如何编写启动linux下的tomcat脚本问题

问题描述 关于如何编写启动linux下的tomcat脚本问题 每次启动tomcat,都需要进入到具体的路径下 /data/uficc/program/apache-tomcat-7.0.65/bin ,然后 ./startup.sh & 启动tomcat,需要重启是都是先kill掉进程后再次启动. 我的需求是:能不能编写个脚本,让我无论在那个路径下,只需要简单输入 :Manage stop tomcat 就可以停止tomcat服务,输入 Manage start tomcat 可以启动tomca

使用extundelete恢复LINUX下ext4误删的文件

最近看到群里提到如何恢复LINUX下ext4误删的文件,之前听说过ext3分区恢复工具ext3grep,但是恢复ext4一直没有概念,而且目前线上的系统分区格式都是ext4,SO网上找到了一款叫extundelete的文件恢复工具,该工具最给力的一点就是支持ext3/ext4双格式分区恢复,对我们运维攻城狮算是一款神器级别的软件,这里整理了如下文档,供大家参考. 虚拟机:        vmware workstation 9.0.2 操作系统:      CentOS6.3 x64 extun

Linux下用Python脚本监控目录变化代码分享

  这篇文章主要介绍了Linux下用Python脚本监控目录变化代码分享,本文直接给出实现代码,需要的朋友可以参考下 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 #!/usr/bin/env python #coding=utf-8   import os from pyinotify import WatchManager, Notifier, ProcessEven

Linux下定时删除过期文件的方法

在管理Linux下的文件时,我们通常会有定时删除过期文件的这个需求.比如定时删除超过指定时间的日志文件,不然时长越久,你的日志文件占用的空间就越大,那离爆磁盘不远了,还有也解决网站方便的需求,比如我们建立的淘宝客api的程序,为了提高商品页的访问速度,我们需要进行关键数据的缓存,也需要定时删除过期的缓存文件,如果是使用PHP程序扫描删除,那将得不偿失.那么如何在Linux下定时删除过期文件?这里小编简单介绍下,方便需要的朋友. 在linux下删除过期文件,很简单,用如下命令: 复制代码代码如下: