1. 获取shell脚本的名称

${BASH_SOURCE-$0}

2. 获取shell脚本的路径

dirname "${BASH_SOURCE-$0}"

这个路径不一定是脚本的真实路径,举例来说,假设这个命令在文件/home/hubavyn/test.sh中。

执行如下操作:

cd /home/hubavyn/a (假设a是一个文件夹)

sh ../test.sh (这个时候执行上述dirname命令得到的结果只是..)

而如果要获得脚本的真实路径(/home/hubavyn),则要执行如下操作:

path=`dirname ""${BASH_SOURCE-$0}`

real_path=`cd "path">/dev/null;pwd`

这个时候得到的real_path就是/home/hubavyn。这样的好处就是脚本可以灵活部署,可以很方便地获取和脚本一起部署的其他文件的位置。

3. 在一个脚本里加上. <另一个脚本的名字>

加上. 表示另外一个脚本相当于在当前脚本中执行,如在另一个脚本中的变量赋值等操作同样适用于当前脚本。

一点一滴学shell的更多相关文章

  1. 我们一起来学Shell - 正则表达式

    文章目录 什么是正则表达式 正则表达式元字符 正则表达式应用举例 POSIX 方括号表达式 POSIX 字符集列表: 我们一起来学Shell - 初识shell 我们一起来学Shell - shell ...

  2. 我们一起来学Shell - shell的并发及并发控制

    文章目录 bash的并发 未使用并发的脚本 简单修改 使用wait命令 控制并发进程的数量 文件描述符 查看当前进程打开的文件 自定义当前进程用描述符号操作文件 管道 我们一起来学Shell - 初识 ...

  3. 我们一起来学Shell - shell的函数

    文章目录 定义函数 执行不带参数的函数 执行带参数的函数 函数的执行总结 我们一起来学Shell - 初识shell 我们一起来学Shell - shell的变量 我们一起来学Shell - shel ...

  4. 我们一起来学Shell - shell的数组

    文章目录 什么是数组 数组中常用变量 数组的定义 小括号定义数组变量 小括号加键值对定义数组变量 分别定义数组变量 动态地定义数组变量 数组赋值的切片 遍历数组 关联数组 我们一起来学Shell - ...

  5. 我们一起来学Shell - shell的循环控制

    文章目录 Shell 循环之 for 语句 Shell 循环之 while 语句 Shell 循环之 until 语句 Shell 循环控制 break指令 continue 指令 exit 指令 s ...

  6. 我们一起来学Shell - shell的条件判断

    文章目录 Shell 条件测试语法 符号说明 Shell 测试表达式 文件测试表达式 字符串测试表达式 整数操作符 逻辑操作符 测试表达式的区别总结 Shell 条件判断之if语句 单分支 IF 条件 ...

  7. 我们一起来学Shell - 初识shell

    文章目录 Shell 的分类 `bash` `csh` `ksh` `tcsh` `sh` `nologin` `zsh` Shell 能做什么 bash 环境变量文件 `/etc/profile` ...

  8. 一点一滴学shell-Shell expr的用法 (转)

    原文链接:http://desheng666.blog.163.com/blog/static/4908408220121643953425/ expr命令一般用于整数值,但也可用于字符串.一般格式为 ...

  9. 从零开始学Shell(一)

    1.$表示普通用户,#表示超级用户.2.sh /home/path/script.sh3.chmod a+x script.sh  增加可执行权限    ./script.sh    #./表示当前的 ...

随机推荐

  1. C#图片上传服务器缩放存储功能

    项目需求上需要用户上传头像.本来是用第三方的插件的.但是很多都是收费的. 不过,我需要花这钱么?是不?所以网络上搜集了些资料.. 果然.这个世界 大神是很多很多的. 用了个免费插件. <scri ...

  2. Gson运用

    输出对象或者对象的list时,我们一般都是重写toString,和遍历list,但是使用Gson输出对象或者对象的list会非常方便. Gson输出list或者对象.Gson数据没有格式化. impo ...

  3. Nginx限制访问速率和最大并发连接数模块--limit (防止DDOS攻击)

    Tengine版本采用http_limit_req_module进行限制 具体连接请参考 http://tengine.taobao.org/document_cn/http_limit_req_cn ...

  4. Hibernate和Struts2整合的增、删、改、查

    1. 新建一个Web项目,准备好jar包和配置文件. 2. web.xml文件中添加过滤器 <?xml version="1.0" encoding="UTF-8& ...

  5. Eculid算法 以及Extend_Eculid算法 证明及实现

    Eculid算法  欧几里得算法 证明: 设两数a,b(a<b). 令c=gcd(a,b) . 则 设a=mc, b=nc . 所以 r= r =a-kb=mc-knc=(m-kn)c  . 所 ...

  6. linux 驱动学习笔记05--文件系统与设备文件系统

    查看/proc/devices 文件可以获知系统中注册的设备,第 1 列为主设备号,第 2 列为设备名,如:

  7. BZOJ2038: [2009国家集训队]小Z的袜子(hose)

    Time Limit: 20 Sec  Memory Limit: 259 MB Description 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天, ...

  8. 3.springMVC+spring+Mybatis整合Demo(单表的增删该查,这里主要是贴代码,不多解释了)

    前面给大家讲了整合的思路和整合的过程,在这里就不在提了,直接把springMVC+spring+Mybatis整合的实例代码(单表的增删改查)贴给大家: 首先是目录结构: 仔细看看这个目录结构:我不详 ...

  9. C#删除datable空行

    //去除dataTable空行 public DataTable RemoveEmpty(DataTable dt) { List<DataRow> removelist = new Li ...

  10. privoxy代理google浏览器访问缓慢

    取消--no-daemon <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PU ...