当前位置: 首页 > news >正文

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 
$

相关文章:

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 脚本,则命令…...

面试题-React(十七):如何使用RTK进行状态管理

Redux Toolkit(RTK) 是一个强大的工具集,旨在简化和改进Redux的使用。它提供了一组工具和约定,使Redux的配置和编写更加直观和高效。 一、Redux Toolkit简介 Redux Toolkit是一个由Redux官方团队开发和维护的库,旨在…...

网络安全—自学笔记

目录 一、自学网络安全学习的误区和陷阱 二、学习网络安全的一些前期准备 三、网络安全学习路线 四、学习资料的推荐 想自学网络安全(黑客技术)首先你得了解什么是网络安全!什么是黑客! 网络安全可以基于攻击和防御视角来分类…...

Java后端开发(五)-- 对象转换工具类

为避免返回给前端的字段信息太多,在缓解前、后端通信的带宽压力的前提下,对不必要的字段的信息进行不返回时,entity层对象需要向vo层对象进行转换,同事尽量减少geetter与setter方法的编码。 1. ConvertUtils工具类 import org.slf4j.Logger; import org.slf4j.LoggerFacto…...

pandas写入MySQL

安装好pandas、mysql pip install pandas pip install pymysql 导入pandas、mysql import pymysql as mysql import pandas as pd 建立连接 conmysql.connect(host10.10.0.221,userroot,passwordroot,databasepandas,port3306,charsetutf8) 创建游标 curcon.cursor() 读…...

TCP实战:即时通信-端口转发

1、即时通信是什么含义,要实现怎么样的设计? 即时通信,是指一个客户端的消息发出去,其他客户端可以接收到即时通信需要进行端口转发的设计思想服务端需要把在线的Socket管道存储起来一旦收到一个消息要推送给其他管道 服务端 pac…...

CMakeLists.txt详解

CMakeLists.txt详解 CMakeLists.txt是一个用于构建C/C项目的CMake配置文件。它定义了项目的编译选项,包括编译器类型、依赖库、预处理宏和子目录等。让我们逐步解析这个文件。 编译器检测 CMAKE_CXX_COMPILER_ID 变量用于检测编译器类型。在这个示例中&#xff0…...

记一个JSON返回数据的bug

记一个JSON返回数据的bug:‘Object of type int64 is not JSON serializable’ 我在打包数组进行json数据返回时,有一个参数是numpy数组里计算出来的,类型为int64,直接进行json打包会报错 提示(‘Object of type int64 is not JSON serializa…...

毫米波雷达模块技术革新:在自动驾驶汽车中的前沿应用

随着自动驾驶技术的快速发展,毫米波雷达模块的技术革新成为推动这一领域的关键因素之一。本文将深入研究毫米波雷达模块技术的最新进展,并探讨其在自动驾驶汽车中的前沿应用。 毫米波雷达模块的基本原理 解释毫米波雷达模块的基本工作原理,强…...

优秀数据库模式迁移工具的发展历程

数据库模式迁移可能是应用程序开发中风险最大的领域——因为这是一个困难的、有风险的和痛苦的过程。数据库模式迁移工具的存在是为了减轻这种痛苦,并且已经取得了长足的进步:从基本的CLI工具到GUI工具,从简单的SQL GUI客户端到一体化协作数据…...

【深度学习】数据集最常见的问题及其解决方案

简介 如果您还没有听过,请告诉您一个事实,作为一名数据科学家,您应该始终站在一个角落跟你说:“你的结果与你的数据一样好。” 尝试通过提高模型能力来弥补糟糕的数据是许多人会犯的错误。这相当于你因为原来的汽车使用了劣质汽…...

Excel文件带有密码的只读模式,如何设置?

Excel带有密码的除了打开密码和工作表保护以外,其实还有一种可以设置密码的方法,今天给大家分享如何设置带有密码的只读模式。 打开excel文件,将文件进行【另存为】设置,然后停留在保存路径的界面中,我们点击下面的工…...

【Qt之json文件】json文件介绍及相关读写类介绍、示例

JSON介绍 JSON(JavaScript Object Notation)是一种源自Javascript的编码对象数据的轻量级的数据交换格式,易于理解和编写,JSON但现在已广泛用作互联网上的数据交换格式。 Qt提供了处理JSON数据的支持。Qt中的JSON支持提供了一个易…...

arp 隔离

目录 问题查找解决方式参考 问题 linux 在使用双网卡系统时,当这两个不同网段的网口接到同一个交换机上,会出现 eth0 的 arp 请求,会在 eth1 上收到并回复,相当于自己检测到了自己的 ip。 查找 linux 的底层,默认情…...

数据结构与算法(文章链接汇总)

数据结构与算法(一):概述与复杂度分析 数据结构与算法(二):数组与链表 数据结构与算法(三):栈与队列 数据结构与算法(四):哈希表 数据…...

代码随想录算法训练营第五十九天 | 647. 回文子串、516.最长回文子序列

647. 回文子串 链接: 代码随想录 (1)代码 516.最长回文子序列 链接: 代码随想录 (1)代码...

非关系型数据库-Redis

一、缓存概念 缓存是为了调节速度不一致的两个或多个不同的物质的速度,在中间对速度较慢的一方起到加速作用,比如CPU的一级、二级缓存是保存了CPU最近经常访问的数据,内存是保存CPU经常访问硬盘的数据,而且硬盘也有大小不一的缓存…...

HTML基本讲解与使用

目录 html的由来: 什么是HTML: HTML的主要特点: HTML文档结构: HTML元素: HTML元素属性: 文本和格式化: 链接和图像: 列表: 表格: 表单: 嵌套和结构: HTML注释: 样式…...

linux uname详解 -s -r -a 查看内核版本

简介 uname命令用于显示操作系统信息,例如内核版本、主机名、处理器类型等 uname常用的有-a,-r,-rs 参数 --help  显示帮助。-a 或--all 显示全部信息,包括内核名、主机名、内核版本、处理器类型和硬件架构等…...

Linux常用命令——cmp命令

在线Linux命令查询工具 cmp 比较两个文件是否有差异 补充说明 cmp命令用来比较两个文件是否有差异。当相互比较的两个文件完全一样时,则该指令不会显示任何信息。若发现有差异,预设会标示出第一个不通之处的字符和列数编号。若不指定任何文件名称或是…...

告别复制粘贴!用STM32CubeMX HAL库高效控制蓝桥杯G431开发板8个LED(附流水灯代码)

STM32CubeMX HAL库实战:G431开发板LED高级控制技巧 第一次接触STM32G431开发板时,我像大多数初学者一样,直接在main函数里写满了GPIO控制代码。直到参加蓝桥杯比赛前夕,才发现这种写法在复杂项目里简直就是灾难——每次修改灯效都…...

PyTorch实现Transformer英法机器翻译系统

1. 从零构建Transformer模型:实现英法机器翻译系统 2017年,Transformer架构的提出彻底改变了序列到序列任务的处理方式。作为一名长期从事NLP开发的工程师,我将带您完整实现一个基于PyTorch的英法翻译Transformer模型。不同于简单调用现成库&…...

AI编程助手实战评测:Claude3(Opus)在复杂功能实现上如何领先通义灵码

1. 复杂编程任务下的AI助手对决 最近在开发者圈子里有个热门话题:当遇到稍微复杂的编程需求时,到底该选择哪款AI编程助手?我恰好有个实际需求——用Python整合Azure语音服务开发带图形界面的应用,于是拿通义灵码和Claude3(Opus)做…...

TCT Asia 2026:光固化LCD 3D打印机进入“高分辨率+大尺寸+智能化”新阶段

在2026年TCT Asia上,光固化3D打印(尤其LCD技术路线)依然是消费级及轻工业制造领域的核心焦点。从屏幕尺寸的扩张到分辨率的跃升,从透光率的精细化竞争到AI赋能的破局尝试,光固化LCD打印机正在经历一场技术与商业的双重…...

AI圈大洗牌:智谱Anthropic集体涨价,老用户直呼“被背刺“!

4月中旬,人工智能领域传来震动行业的一则消息——国内AI巨头智谱与国外Anthropic公司在短短一个月内接连调整价格策略,引发广大开发者群体强烈反响。价格"跳水"变"爬坡"据报道,智谱公司从1月至4月短短四个月内连续四次调…...

[AutoSar]BSW_Memory_Stack_007 FEE 模块核心机制:顺序写入与翻页策略详解

1. FEE模块在AutoSar架构中的核心作用 在汽车电子系统中,数据存储的可靠性直接关系到车辆功能的正常运行。FEE(Flash EEPROM Emulation)作为AutoSar BSW层的关键模块,承担着模拟EEPROM存储行为的重要职责。不同于传统EEPROM芯片&a…...

别再只盯着SQL注入了!熊海CMS靶场隐藏的XSS与文件包含漏洞挖掘指南

熊海CMS靶场深度审计:突破SQL注入思维定式的XSS与文件包含实战 在安全测试领域,SQL注入往往成为初学者的"舒适区",而熊海CMS靶场恰恰提供了突破这种思维定式的绝佳训练场。当我们过度聚焦于数据库层面的攻击时,可能忽略…...

3秒搞定网页图片格式转换:免费Chrome扩展Save Image as Type终极使用指南

3秒搞定网页图片格式转换:免费Chrome扩展Save Image as Type终极使用指南 【免费下载链接】Save-Image-as-Type Save Image as Type is an chrome extension which add Save as PNG / JPG / WebP to the context menu of image. 项目地址: https://gitcode.com/gh…...

R语言线性分类算法实战:逻辑回归与LDA应用

1. 线性分类算法概述在R语言中进行机器学习建模时,线性分类算法是最基础且实用的工具之一。这些算法通过寻找特征之间的线性关系来进行分类预测,特别适合处理结构化数据。iris数据集作为R内置的经典分类数据集,包含了150个样本的鸢尾花测量数…...

如何在Video2X中实现GLFW窗口创建与Vulkan表面绑定:完整技术指南

如何在Video2X中实现GLFW窗口创建与Vulkan表面绑定:完整技术指南 【免费下载链接】video2x A machine learning-based video super resolution and frame interpolation framework. Est. Hack the Valley II, 2018. 项目地址: https://gitcode.com/GitHub_Trendin…...