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


相关文章
|
2天前
|
分布式计算 Hadoop Shell
使用shell脚本实现自动SSH互信功能
使用shell脚本实现自动SSH互信功能
10 1
|
2天前
|
网络协议 Shell Linux
LabVIEW 在NI Linux实时设备上访问Shell
LabVIEW 在NI Linux实时设备上访问Shell
|
3天前
|
Unix Shell Linux
轻松编写 AIX Shell 脚本
轻松编写 AIX Shell 脚本
11 1
|
4天前
|
Shell Linux
【Linux】进程实践项目(更新中) — 自主shell编写
前几篇文章,我们学习进程的相关知识:进程概念,进程替换,进程控制。熟悉了进程到底是个什么事情,接下来我们来做一个实践,来运用我们所学的相关知识。这个项目就是手搓一个shell模块,模拟实现Xshell中的命令行输入。
10 1
|
4天前
|
监控 关系型数据库 Shell
Shell脚本入门:从基础到实践,轻松掌握Shell编程
Shell脚本入门:从基础到实践,轻松掌握Shell编程
|
4天前
|
关系型数据库 MySQL Shell
在Centos7中利用Shell脚本:实现MySQL的数据备份
在Centos7中利用Shell脚本:实现MySQL的数据备份
|
4天前
|
Shell Linux 信息无障碍
5 个有用的 Linux Shell 转义序列
5 个有用的 Linux Shell 转义序列
|
6天前
|
Shell Linux 编译器
C语言,Linux,静态库编写方法,makefile与shell脚本的关系。
总结:C语言在Linux上编写静态库时,通常会使用Makefile来管理编译和链接过程,以及Shell脚本来自动化构建任务。Makefile包含了编译规则和链接信息,而Shell脚本可以调用Makefile以及其他构建工具来构建项目。这种组合可以大大简化编译和构建过程,使代码更易于维护和分发。
23 5
|
6天前
|
Shell 程序员 数据安全/隐私保护
shell 脚本 if-else判断 和流程控制 (基本语法|基础命令)
shell 脚本 if-else判断 和流程控制 (基本语法|基础命令)
|
6天前
|
存储 Shell C语言
shell脚本 编程 变量 基本入门(详解)
shell脚本 编程 变量 基本入门(详解)