shell脚本怎么获取当前脚本名称(获取脚本文件名)$(basename “$0“)(basename命令:去除字符串路径部分、去除后缀) | 您所在的位置:网站首页 › shell获取当前路径的方法是 › shell脚本怎么获取当前脚本名称(获取脚本文件名)$(basename “$0“)(basename命令:去除字符串路径部分、去除后缀) |
文章目录
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"来获取脚本的名称。$0表示当前脚本的名称,basename "$0"会将路径部分去除,只保留文件名部分。 $0(当前脚本的名称,带脚本与工作目录之间的相对路径)$0表示当前脚本的名称,比如: #!/bin/bash echo $0运行结果: 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 实验室设备网 版权所有 |