广告
返回顶部
首页 > 资讯 > 操作系统 >Shell获取路径操作(dirname $0 pwd)的实现
  • 962
分享到

Shell获取路径操作(dirname $0 pwd)的实现

Shell获取路径操作Shelldirname$0pwd 2022-06-05 00:06:13 962人浏览 薄情痞子
摘要

目录pwd用法pwd:pwd-L:pwd-P:basename用法basename:basename-s:basename-a:dirname用法dirname:dirname-z:  在shell脚

目录
  • pwd用法
    • pwd:
    • pwd-L:
    • pwd-P:
  • basename用法
    • basename:
    • basename-s:
    • basename-a:
  • dirname用法
    • dirname:
    • dirname-z:

  在shell脚本中经常会看TLAgktZGUq到$(cd $(dirname $0); pwd)、basename等操作,本文就来记录一下 dirname、basename、pwd 的用法及组合使用。

pwd 用法

pwd: pwd [-LP]
Print the name of the current working directory.
Options:
-L print the value of $PWD if it names the current working directory
-P print the physical directory, without any symbolic links

pwd:

打印出当前工作路径,注意是 ”工作路径“,及脚本在哪个路径执行,该路径就是该脚本的工作路径,如图:

pwd

pwd -L:

打印出环境变量 $PWD 的值,如果 PWD 赋值为当前工作路径,pwd 默认同 pwd -L

pwd -P:

打印真实路径,不打印链接的路径,区别如图:

pwd

basename 用法

Examples:
 basename /usr/bin/sort -> “sort”
 basename include/stdio.h .h -> “stdio”
 basename -s .h include/stdio.h -> “stdio”
 basename -a any/str1 any/str2 -> “str1” followed by “str2”

basename:

打印除上层路径外的基础文件名;当文件名后存在后缀时,除去后面的后缀,如 # basename include/stdio.h .h 只会打印出 stdio

basename -s:

-s参数后面指定要去除的后缀字符,即:# basename -s .h include/stdio.h 同 # basename include/TLAgktZGUqstdio.h .h 一样只会打印出 stdio

basename -a:

-a参数可追加执行多个文件路径,取每一个路径的基础文件名并打印。用法如下图:

basename

dirname 用法

Examples:
 dirname /usr/bin/ -> “/usr”
 dirname dir1/str dir2/str -> “dir1” followed by “dir2”
 dirname stdio.h -> “.”

dirname:

去除文件名中的非目录部分,删除最后一个“\”后面的路径,显示父目录

dirname -z:

输出结果不换行
如图所示:

dirname

组合使用 参数 $0:

在shell中,$0 指定为命令行参数的第0个参数,即当前脚本的文件名,$1 $2 指传入脚本的第 1 第 2 个参数

dirname 和 $0:

经常看到 $(dirname $0),那么这个变量存放什么,即:当前脚本文件的父目录,注意 $0 为脚本执行时传入的脚本路径名,如下:

dirname和$0

  一般在shell中执行文件都用绝对路径,但如果使用相对路径的情况,必须保证相对当前工作路径下的目标路径存在该文件,不然会打印 bash: …/shell/demo.sh: No such file or directory。也就是如果你脚本路径传错了,dirname自然就不能获取到有效的父目录!

dirname、$0 和 pwd:

  通常我们需要把当前脚本的路径作为工作路径来执行某些相对路径文件,这时就需要获取当前被执行脚本的父目录的绝对路径了,而变量 $(cd $(dirname $0); pwd) 就是用来保存当前脚本的父目录的绝对路径的,如下图:

绝对路径

可查看执行 # $(cd $(dirname $0); pwd) 获取当前脚本父目录的绝对路径的过程如下:

+++ dirname shell/demo.sh
++ cd shell
++ pwd
+ echo /home/shell
/home/shell

  dirname $0 pwd 这几个组合的操作在shell编程中非常常用,到此这篇关于Shell获取路径操作(dirname $0 pwd)的实现的文章就介绍到这了,更多相关Shell获取路径操作内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

--结束END--

本文标题: Shell获取路径操作(dirname $0 pwd)的实现

本文链接: https://www.lsjlt.com/news/21580.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作