shell中当basename和dirname无法满足你的需求时你一定要想到的命令

简介: shell中当basename和dirname无法满足你的需求时你一定要想到的命令

basename和dirname 在脚本中的作用

请看下面这个脚本的作用。 程序本身中并没有写死任何路径,但是却可以获取到dirname。

 

PROG_NAME="$(basename $0)"
PROG_DIR="$(cd $(dirname $0) && pwd)"

basename和dirname的局限

basename命令会返回不包含路径的脚本名。

dirname,获取文件所在目录


dirname /etc/    # 对目录使用dirname获取的是上级目录

dirname /kalsldk/kdkskks/djfjdjdjsj   # 获取不存在的目录


shell提供的basename和dirname,难免有些限制,我们可以使用${}来灵活获取,而且${}可以用来做shell的字符子串提取。

  • ${var##*/}
  • ${##*.}
  • ${var#*.}
  • ${var%/*}
  • ${var%%.*}

对${}的总结

#代表左起,%代表右起

两个符号代表最后一个字符,一个符号代表第一个字符

  1. #:左起第一个
  2. ##: 左起最后一个
  3. %:右起第一个
  4. %%:右起最后一个


可参考Linux 中如何对变量进行切分?_MyySophia的博客-CSDN博客_linux变量分割

目录
相关文章
|
24天前
|
Web App开发 Java Linux
Linux之Shell基本命令篇
Linux之Shell基本命令篇
Linux之Shell基本命令篇
|
2月前
|
安全 Shell Linux
【Shell 命令集合 系统管理 】Linux 锁定终端 vlock命令 使用指南
【Shell 命令集合 系统管理 】Linux 锁定终端 vlock命令 使用指南
36 1
|
2月前
|
缓存 Shell Linux
【Shell 命令集合 链接器(linker)工具】Linux ld命令 将目标文件与库链接为可执行文件或库文件
【Shell 命令集合 链接器(linker)工具】Linux ld命令 将目标文件与库链接为可执行文件或库文件
39 0
|
2月前
|
Shell Linux C语言
【Shell 命令集合 系统管理 】Linux 显示系统的平均负载情况 tload命令 使用指南
【Shell 命令集合 系统管理 】Linux 显示系统的平均负载情况 tload命令 使用指南
43 1
|
2月前
|
监控 Shell Linux
【Shell 命令集合 系统管理 】Linux 显示当前登录到系统的用户信息 who命令 使用指南
【Shell 命令集合 系统管理 】Linux 显示当前登录到系统的用户信息 who命令 使用指南
140 45
|
2月前
|
监控 Shell Linux
【Shell 命令集合 系统管理 】Linux 显示目前登入系统的用户信息 w命令 使用指南
【Shell 命令集合 系统管理 】Linux 显示目前登入系统的用户信息 w命令 使用指南
47 2
|
2月前
|
存储 Unix Shell
【Shell 命令集合 系统管理 】⭐⭐Linux 显示系统的基本信息 uname命令 使用指南
【Shell 命令集合 系统管理 】⭐⭐Linux 显示系统的基本信息 uname命令 使用指南
35 1
|
2月前
|
存储 Shell Linux
【Shell 命令集合 系统管理 】Linux 修改用户的属性和配置 usermod命令 使用指南
【Shell 命令集合 系统管理 】Linux 修改用户的属性和配置 usermod命令 使用指南
41 1
|
2月前
|
搜索推荐 Shell Linux
【Shell 命令集合 系统管理 】Linux 管理用户配置文件 userconf命令 使用指南
【Shell 命令集合 系统管理 】Linux 管理用户配置文件 userconf命令 使用指南
38 2
|
2月前
|
Shell Linux 数据库
【Shell 命令集合 系统管理 】Linux 创建新用户的命令 useradd命令 使用指南
【Shell 命令集合 系统管理 】Linux 创建新用户的命令 useradd命令 使用指南
52 1