dirname作用

  • dirname实际工作中常常是跟$0一起使用
  • 用于获取当前运行脚本的绝对路径
  • 这个命令要放在shell脚本中使用,在命令行使用意义不大
[yutao@master01 ~]$ dirname --help
用法:dirname 名称
 或:dirname 选项
输出已经去除了尾部的"/"字符部分的名称;如果名称中不包含"/",
则显示"."(表示当前目录)。 --help 显示此帮助信息并退出
--version 显示版本信息并退出 示例:
dirname /usr/bin/sort 输出"/usr/bin"。
dirname stdio.h 输出"."。 请向bug-coreutils@gnu.org 报告dirname 的错误
GNU coreutils 项目主页:<http://www.gnu.org/software/coreutils/>
GNU 软件一般性帮助:<http://www.gnu.org/gethelp/>
请向<http://translationproject.org/team/zh_CN.html> 报告dirname 的翻译错误
要获取完整文档,请运行:info coreutils 'dirname invocation'

$0作用

  • 这个表示的真正的含义是:当前运行的命令名,一般用于脚本中
  • 网上大量的说法是Shell本身的文件名。一方面说明大家都是复制粘贴,没有实践;另一方面,大家可能只测了当前目录的情况

实际脚本例子

 sh脚本中:(获取当前脚本绝对路径)

  • sh_path=$(dirname $0)
  • sh_path=$(cd $sh_path;pwd)

 

Shell系列(39) - dirname的更多相关文章

  1. Linux Shell系列教程之(十七) Shell文件包含

    本文是Linux Shell系列教程的第(十七)篇,更多Linux Shell教程请看:Linux Shell系列教程 通过文件包含,可以引用其他文件的内容,也可以将复杂内容分开,使程序结构更加清晰. ...

  2. Linux Shell系列教程之(十六) Shell输入输出重定向

    本文是Linux Shell系列教程的第(十六)篇,更多Linux Shell教程请看:Linux Shell系列教程 Shell中的输出和输入的重定向是在使用中经常用到的一个功能,非常实用,今天就为 ...

  3. Linux Shell系列教程之(十五) Shell函数简介

    本文是Linux Shell系列教程的第(十五)篇,更多Linux Shell教程请看:Linux Shell系列教程 函数可以将一个复杂功能划分成若干模块,从而使程序结构更加清晰,代码重复利用率更高 ...

  4. Linux Shell系列教程之(十四) Shell Select教程

    本文是Linux Shell系列教程的第(十四)篇,更多Linux Shell教程请看:Linux Shell系列教程 在上一篇文章:Linux Shell系列教程之(十三)Shell分支语句case ...

  5. Linux Shell系列教程之(十三)Shell分支语句case … esac教程

    本文是Linux Shell系列教程的第(十三)篇,更多Linux Shell教程请看:Linux Shell系列教程 分支语句非常实用,基本上高级语言都支持分支语句(python 没有),大多数都使 ...

  6. Linux Shell系列教程之(十二)Shell until循环

    本文是Linux Shell系列教程的第(十二)篇,更多Linux Shell教程请看:Linux Shell系列教程 在上两篇文章Linux Shell系列教程之(十)Shell for循环和Lin ...

  7. BSA Network Shell系列-nexec | runcmd | runscript | scriptutil的异同

    说明下nexec.runcmd.runscript.scriptutil的异同 相同点: 四者都可以在远程机器执行命令.或者调用脚本. 不同点: nexec支持NSH命令,可以执行远程机的本地命令(非 ...

  8. BSA Network Shell系列-nexec命令

    # nexec ## 1 说明:nexec是远程命令接口引擎 ,用于在远程主机执行命令 nexec [-?] [-t term] [-o] [-i] [-l] [-nohup hostname &qu ...

  9. (转)Linux Shell系列教程之(十四) Shell Select教程

    本文属于<Linux Shell 系列教程>文章系列,该系列共包括以下 18 部分: Linux Shell系列教程之(一)Shell简介 Linux Shell系列教程之(二)第一个Sh ...

  10. Linux Shell系列教程

    学习Linux Shell知识,就来Linux大学网(Linuxdaxue.com)! 本系列适合Linux初学者,属于Linux入门级教程,主要介绍了Shell的分类.语法格式以及脚本的使用和编写格 ...

随机推荐

  1. 使用JDBC(Dbutils工具包)来从数据库拿取map类型数据来动态生成insert语句

    前言: 大家在使用JDBC来连接数据库时,我们通过Dbutils工具来拿取数据库中的数据,可以使用new BeanListHandler<>(所映射的实体类.class),这样得到的数据, ...

  2. 004 PCI Express体系结构(四)

    一.PCI总线的中断机制 PCI总线使用INTA#.INTB#.INTC#和INTD#信号向处理器发出中断请求.这些中断请求信号为低电平有效,并与处理器的中断控制器连接.在PCI体系结构中,这些中断信 ...

  3. one_gadget的一些姿势

    概要 one_gadget是libc中存在的一些执行execve("/bin/sh", NULL, NULL)的片段,当可以泄露libc地址,并且可以知道libc版本的时候,可以使 ...

  4. Liunx搭建Mysql服务器

    1:安装从网上下载文件的wget命令[root@master ~]# yum -y install wget 2:下载mysql的repo源[root@master ~]# wget http://r ...

  5. window 右键菜单中添加在vs code 打开

    原文链接: window 右键菜单中添加在vs code 打开 window 右键菜单中添加在vs code 打开 吃码小妖:以前安装VS code可以的,后面不知道为什么不能右键在VS code中打 ...

  6. 【spring 注解驱动开发】扩展原理

    尚学堂spring 注解驱动开发学习笔记之 - 扩展原理 扩展原理 1.扩展原理-BeanFactoryPostProcessor BeanFactoryPostProcessor * 扩展原理: * ...

  7. python画循环圆

    import turtle for i in range(100,0,-5): # 从100到0循环递减每次减5 turtle.circle(i,90) 不懂为啥第一次运行会出错,错了再运行一遍for ...

  8. JAVA中直接用Jdbc就能操作数据库了,为什么还要用spring框架?

    不过随着业务的扩展,你就会发现jdbc建立一个连接居然要几百毫秒,而执行一个普通的SQL仅仅需要几毫秒. 这么重量级的资源建立了就释放了不合适,得找个容器存起来,谁要就来取,不用了就还给容器,毕竟容器 ...

  9. indexedDB数据库完整创建流程

    1.打开数据库 使用 IndexedDB 的第一步是打开数据库,使用indexedDB.open()方法 var request = window.indexedDB.open(databaseNam ...

  10. Data Augmentation

    常见操作: 水平翻转-Horizontal Flip Scale-亮度变化 透视变换-perspective,旋转-rotation,错切-Shear,仿射-affine等 尺寸变幻-Resize,可 ...