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变量分割

目录
相关文章
|
5天前
|
安全 Shell 数据处理
使用Python执行Shell命令并获取结果
在实际应用中,可以根据需要选择适当的参数和方法来执行Shell命令,并处理可能出现的各种情况。无论是系统管理、自动化任务还是数据处理,掌握这些技巧都将极大地提高工作效率。
33 12
|
2月前
|
人工智能 Shell iOS开发
AI Shell:在命令行里“对话” AI ,微软推出将 AI 助手引入命令行的 CLI 工具,打造对话式交互命令行
AI Shell 是一款强大的 CLI 工具,将人工智能直接集成到命令行中,帮助用户提高生产力。AI Shell 支持多种 AI 模型和助手,通过多代理框架提供丰富的功能和灵活的使用模式。
174 7
|
2月前
|
Java Shell Windows
java Runtime.exec()执行shell/cmd命令:常见的几种陷阱与一种完善实现
java Runtime.exec()执行shell/cmd命令:常见的几种陷阱与一种完善实现
55 1
|
3月前
|
Web App开发 网络协议 Linux
linux命令总结(centos):shell常用命令汇总,平时用不到,用到就懵逼忘了,于是专门写了这篇论文,【便持续更新】
这篇文章是关于Linux命令的总结,涵盖了从基础操作到网络配置等多个方面的命令及其使用方法。
84 1
linux命令总结(centos):shell常用命令汇总,平时用不到,用到就懵逼忘了,于是专门写了这篇论文,【便持续更新】
|
3月前
|
Shell 知识图谱
Shell printf 命令
10月更文挑战第3天
30 1
|
3月前
|
Unix Shell Linux
常见的shell命令
shell常用命令
73 11
|
4月前
|
Shell Linux
Linux shell编程学习笔记82:w命令——一览无余
Linux shell编程学习笔记82:w命令——一览无余
|
4月前
|
Java Shell Windows
java Runtime.exec()执行shell/cmd命令:常见的几种陷阱与一种完善实现
java Runtime.exec()执行shell/cmd命令:常见的几种陷阱与一种完善实现
184 5
|
3月前
|
Shell PHP
Shell echo命令
10月更文挑战第3天
26 0
|
3月前
|
JSON Java Shell
Dockerfile中RUN、CMD、ENTRYPOINT、SHELL命令的区别
理解这些指令的差异和应用场景,有助于构建高效、灵活且易于管理的Docker镜像。在实际应用中,根据需要选择合适的指令,可以有效地控制镜像构建和容器运行的行为。
273 0