shell脚本怎么获取当前脚本名称(获取脚本文件名)$(basename “$0“)(basename命令:去除字符串路径部分、去除后缀) 您所在的位置:网站首页 shell获取当前路径的方法是 shell脚本怎么获取当前脚本名称(获取脚本文件名)$(basename “$0“)(basename命令:去除字符串路径部分、去除后缀)

shell脚本怎么获取当前脚本名称(获取脚本文件名)$(basename “$0“)(basename命令:去除字符串路径部分、去除后缀)

2024-07-10 23:19| 来源: 网络整理| 查看: 265

文章目录 shell脚本如何获取当前执行脚本名称解释:`$(basename "$0")``$0`(当前脚本的名称,带脚本与工作目录之间的相对路径)`basename`(去除字符串路径部分)示例 拓展:basename命令的完整用法(option选项)示例 20230816 示例:`basename`命令提供第二个参数能去除末尾的后缀

shell脚本如何获取当前执行脚本名称

示例:

#!/bin/bash SCRIPT_NAME=$(basename "$0") echo "My file name is ${SCRIPT_NAME}"

运行结果:

在这里插入图片描述

解释:$(basename "$0")

我们使用basename "$0"来获取脚本的名称。$0表示当前脚本的名称,basename "$0"会将路径部分去除,只保留文件名部分。

$0(当前脚本的名称,带脚本与工作目录之间的相对路径)

$0表示当前脚本的名称,比如:

#!/bin/bash echo $0

运行结果:

在这里插入图片描述

basename(去除字符串路径部分)

basename是一个常用的Linux命令,用于获取文件路径中的文件名部分。

basename命令的语法如下:

basename [OPTIONS] FILENAME

其中,OPTIONS是可选的参数,FILENAME是要处理的文件名或路径。

basename命令会将FILENAME中的路径部分去除,只保留文件名部分,并将结果输出。

以下是一些常用的basename命令的示例:

basename /path/to/file.txt:输出结果为file.txt,去除了路径部分。basename /path/to/directory/:输出结果为directory,去除了路径部分,并且保留了末尾的斜杠。basename /path/to/file.txt .txt:输出结果为file,去除了路径部分,并且去除了指定的文件扩展名。 示例 root@ubuntu:/userdata# root@ubuntu:/userdata# basename ./df/dd.xx dd.xx root@ubuntu:/userdata# root@ubuntu:/userdata# root@ubuntu:/userdata# basename /df/dd.xx dd.xx root@ubuntu:/userdata# root@ubuntu:/userdata# root@ubuntu:/userdata# basename /dfd.ds/dd.xx dd.xx root@ubuntu:/userdata# 拓展:basename命令的完整用法(option选项)

basename完整用法如下:

用法:basename NAME [SUFFIX] 或者:basename OPTION... NAME... 打印出去除任何前导目录组件的NAME。 如果指定了,还会去除末尾的SUFFIX。

长选项的必选参数对于短选项也是必选的。

-a, --multiple 支持多个参数,并将每个参数视为一个NAME-s, --suffix=SUFFIX 去除末尾的SUFFIX;隐含-a选项-z, --zero 每行输出以NUL字符结尾,而不是换行符--help 显示此帮助信息并退出--version 输出版本信息并退出 示例 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" 后跟 "str2"

请仔细研读下面,我就不写注释了:

root@ubuntu:/userdata# root@ubuntu:/userdata# basename /usr/bin/sort sort root@ubuntu:/userdata# root@ubuntu:/userdata# basename include/stdio.h .h stdio root@ubuntu:/userdata# root@ubuntu:/userdata# basename include/stdio.h stdio.h root@ubuntu:/userdata# root@ubuntu:/userdata# basename -s .h include/stdio.h stdio root@ubuntu:/userdata# root@ubuntu:/userdata# basename -a any/str1 any/str2 str1 str2 root@ubuntu:/userdata# root@ubuntu:/userdata# root@ubuntu:/userdata# basename -s io.h include/stdio.h std root@ubuntu:/userdata# root@ubuntu:/userdata# basename include/stdio.h o.h stdi 20230816 示例:basename命令提供第二个参数能去除末尾的后缀

basename命令如果提供了第二个参数,basename会进一步去除文件名中的这部分内容。

例如:

$ basename "/etc/systemd/system/example.service"

返回结果为:example.service

而如果我们添加.service作为第二个参数:

$ basename "/etc/systemd/system/example.service" .service

返回结果为:example,这样我们就得到了服务名,而不是文件名。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有