linux 在shell脚本中获取该脚本的所在绝对路径2

脚本名:a.sh

位置:/tmp/whuang/study/Java

脚本内容:

Shell代码  

  1. this_dir=`pwd`  
  2. file_name=`basename $0`  
  3. dirname $0|grep "^/" >/dev/null  
  4. if [ $? -eq 0 ];then  
  5.     this_dir=`dirname $0`  
  6. else  
  7.         dirname $0|grep "^\.\." >/dev/null  
  8.         retval=$?  
  9.         if [ $retval -eq 0 ];then  
  10.                this_dir=`dirname $0|sed "s#^#$this_dir/#"`  
  11.         else  
  12.                         dirname $0|grep "^\./" >/dev/null  
  13.                         retval=$?  
  14.                         if [ $retval -eq 0 ];then  
  15.                                 this_dir=`dirname $0|sed "s#^\.\(/.*\)#$this_dir\1#"`  
  16.                         else  
  17.                                 this_dir=`dirname $0|sed "s#^#$this_dir/#"`  
  18.                         fi  
  19.                 fi  
  20. fi  
  21. echo $this_dir  

 ----------------------------------------------

功能:获取脚本的绝对路径。

测试:

 

[root@ppc40 java]# pwd

/tmp/whuang/study/java

[root@ppc40 java]# sh a.sh

/tmp/whuang/study/java

[root@ppc40 java]# cd ..

[root@ppc40 study]# sh java/a.sh

/tmp/whuang/study/java

[root@ppc40 study]# sh ./java/a.sh

/tmp/whuang/study/java

 

[root@ppc40 study]# sh ../study/java/a.sh

/tmp/whuang/study/../study/java

时间: 2025-01-28 08:44:55

linux 在shell脚本中获取该脚本的所在绝对路径2的相关文章

linux 在shell脚本中获取该脚本的所在绝对路径

脚本名:a.sh 位置:/tmp/whuang/study/Java 脚本内容:   Shell代码   #!/bin/sh   this_dir=`pwd`   dirname $0|grep "^/" >/dev/null   if [ $? -eq 0 ];then                   this_dir=`dirname $0`   else           dirname $0|grep "^\." >/dev/null  

Shell脚本中获取进程ID的方法

 这篇文章主要介绍了Shell脚本中获取进程ID的方法,我想要知道运行中脚本子shell的进程id,我该如何在shell脚本中得到PID,阅读本文即可找到你想要答案,需要的朋友可以参考下     提问: 我想要知道运行中脚本子shell的进程id.我该如何在shell脚本中得到PID. 当我在执行shell脚本时,它会启动一个叫子shell的进程.作为主shell的子进程,子shell将shell脚本中的命令作为批处理运行(因此称为"批处理进程"). 在某些情况下,你也许想要知道运行中

Shell脚本中获取进程ID的方法_linux shell

提问: 我想要知道运行中脚本子shell的进程id.我该如何在shell脚本中得到PID. 当我在执行shell脚本时,它会启动一个叫子shell的进程.作为主shell的子进程,子shell将shell脚本中的命令作为批处理运行(因此称为"批处理进程"). 在某些情况下,你也许想要知道运行中的子shell的PID.这个PID信息可以在不同的情况下使用.比如,你可以使用shell脚本的PID在/tmp下创建一个唯一的临时文件.有时侯脚本需要检测所有运行的进程,它可以从进程列表中排除自身

linux下shell编程中Shift的用法

位置参数可以用shift命令左移.比如shift 3表示原来的$4现在变成了$1,原来的$5现在变成了$2,原来的$1.$2.$3丢弃,$0不移动.不带参数的shift命令相当于shift 1. 非常有用的Unix命令:shift.我们知道,对于位置变量或者命令参数,其个数必须是确定的,或者当shell程序不知道其个数时,可以把所有参数一起赋值变量$*.左路用户要求Shell在不知道位置变量个数的情况下,还能逐个的把参数-处理,也就是在$1后为$2,在$2后面为$3等.在shfit命令执行前变量

Shell脚本中获取本机ip地址的3个方法_linux shell

方法一: 复制代码 代码如下: /sbin/ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:" or /sbin/ifconfig|sed -n '/inet addr/s/^[^:]*:\([0-9.]\{7,15\}\) .*/\1/p' 方法二: 复制代码 代码如下: local_host="`hostname --fqdn`" local_i

shell脚本中执行python脚本并接收其返回值的例子_linux shell

1.在shell脚本执行python脚本时,需要通过python脚本的返回值来判断后面程序要执行的命令 例:有两个py程序  hello.py 复制代码 代码如下: def main():     print "Hello" if __name__=='__main__':     main() world.py def main():     print "Hello" if __name__=='__main__':     main() shell 脚本 te

linux 利用shell生成xml站点地图脚本

一些以静态页面为主的站点,可能不方便的没有生成sitemap .而为了加快seo/seo.html" target="_blank">搜索引擎的收录,最好能主动做好sitemap,通过站长工具提交或写入robots文件,这样能加快百度.google等的收录. 下面以百度sitmap为例, 通过shell实现的代码如下:  代码如下 复制代码 cd /data/www find . -name *.htm > site.txt sed -i 's/.//http:/

Linux下shell编程中数组的常见用法及示例

新版本的Bash支持一维数组. 数组元素可以使用符号variable[xx]等方式来初始化. 另外, 脚本可以使用declare -a variable语句来指定一个数组等.要引用一个数组元素(也就是取值), 可以使用大括号, 访问形式为${variable[xx]},当然了,下面是一些老男孩经常使用的方法和对数组的一点理解,如有高见,欢迎指导,先谢谢博友们了. 1.1 shell数组的常用定义方法: 1)方法一: 命令法: dir=($(ls .)) 范例1:手工命令行操作演示 [root@o

js中获取file控件的完整路径实例

document.getElementById(""my-file"").files办法用于获取到用户所选择的文件的凑集,一般景象下都是选择单一文件(貌似FireFox如许做是支撑多文件选择的,不过没有试过,读者可以本身去测验测验),item数组可以获得此中的某一个文件,然后我们就可以应用 nsIDOMFile所供给的属性和办法了.它包含2个属性和3个办法: fileName:用于获取到用户所选文件的名称,这和直接取value值所获得的成果一样. fileSize: