shell_38.Linux读取脚本名

读取脚本名

(1)示例

复制代码
$ cat positional0.sh 
#!/bin/bash 
# Handling the $0 command-line parameter 
#
echo This script name is $0. 
exit 
$ 
$ bash positional0.sh 
This script name is positional0.sh. 
$

(2)如果使用另一个命令来运行 shell 脚本,则命令名会和脚本名混在一起,出现在位置变量$0 中:

复制代码
$ ./positional0.sh 
This script name is ./positional0.sh. 
$

那么位置变量$0 就会包含整个路径:

复制代码
$ $HOME/scripts/positional0.sh 
This script name is /home/christine/scripts/positional0.sh. 
$

(3)如果你编写的脚本中只打算使用脚本名,那就得做点儿额外工作,剥离脚本的运行路径。好在有个方便的小命令可以帮到我们。

basename 命令可以返回不包含路径的脚本名:

复制代码
$ cat posbasename.sh 
#!/bin/bash 
# Using basename with the $0 command-line parameter 
# 
name=$(basename $0) 
# 
echo This script name is $name. 
exit 
$ 
$ ./posbasename.sh 
This script name is posbasename.sh. 
$

(4)可以使用此技术编写一个脚本,生成能标识运行时间的日志消息:

复制代码
$ cat checksystem.sh 
#!/bin/bash 
# Using the $0 command-line parameter in messages 
# 
scriptname=$(basename $0) 
# 
echo The $scriptname ran at $(date) >> $HOME/scripttrack.log 
exit 
$ 
$ ./checksystem.sh
$ cat $HOME/scripttrack.log
The checksystem.sh ran at Thu 04 Jun 2020 10:01:53 AM EDT 
$
相关推荐
m0_7373025827 分钟前
解码OpenClaw:让AI从“对话应答”走向“自主执行”的开源智能体
服务器
取经蜗牛8 小时前
Ubuntu 国内镜像源配置指南(多版本常用镜像地址都有)
linux·运维·ubuntu
tedcloud1238 小时前
RTK部署教程:构建稳定的AI Workflow环境
服务器·javascript·人工智能·typescript·ocr
实心儿儿9 小时前
Linux —— 线程控制(1)
linux·运维·服务器
筠筠喵呜喵9 小时前
Linux软件开发性能优化
linux·c++·性能优化
Bruce_kaizy10 小时前
c++ linux环境编程——文件io介绍以及open 、write 、read 三剑客深度详解
linux·服务器·c++·ubuntu·操作系统·文件io
亦良Cool10 小时前
VMware虚拟机ubuntu瘦身,解决虚拟机越用越大
linux·运维·ubuntu
星辰&与海11 小时前
KVM + QEMU虚拟化方案
linux·运维
宋浮檀s12 小时前
应急响应——恶意流量&攻击行为识别
linux·运维·网络·网络安全·应急响应
REDcker12 小时前
Linux OverlayFS详解
java·linux·运维