Linux笔记之bash和expect脚本中的$和$argv参数匹配

Linux笔记之bash和expect脚本中的 和 和 argv参数匹配

—— 杭州 2024-02-03

在这里插入图片描述

code review!

1.bash脚本

在Linux的bash脚本中,参数和脚本文件名的变量使用方式与你提供的稍有不同。在bash中,脚本参数是通过位置参数来访问的,位置参数的变量名是由一个美元符号$后接一个数字来表示的。第一个参数是$1,第二个参数是$2,依此类推。

脚本文件名可以通过特殊的shell参数$0来访问。所以,对于你的问题:

  • $argv0不是标准的bash变量。脚本文件名是通过$0来访问的。
  • $argv1也不是标准的bash变量。第一个参数是通过$1来访问的。

这里是一个简单的例子来展示如何在bash脚本中使用这些参数:

#!/bin/bashecho "脚本文件名: $0"
echo "第一个参数: $1"

如果你将上面的脚本保存为script.sh并执行bash script.sh arg1,输出将会是:

脚本文件名: script.sh
第一个参数: arg1

请注意,当你在子shell中执行脚本或者通过链接执行脚本时,$0的值可能会有所不同,它可能包含相对路径或绝对路径,具体取决于如何调用脚本。

2.expect脚本

expect脚本中,确实使用$argv数组来访问传递给脚本的参数。$argv0expect脚本特有的用法,它用于获取脚本的名称,类似于bash中的$0。而$argv则是一个数组,包含所有传递给脚本的参数。

expect中:

  • $argv0是脚本自身的文件名。
  • $argv是一个数组,包含了所有的参数。因此,$argv的第一个元素(索引从0开始)即$argv 0是第一个参数,$argv 1是第二个参数,以此类推。

这里有一个简单的expect脚本示例,展示了如何使用这些变量:

#!/usr/bin/expectputs "脚本文件名: $argv0"
puts "第一个参数: [lindex $argv 0]"
puts "第二个参数: [lindex $argv 1]"

假设将此脚本保存为script.exp,并且调用expect script.exp arg1 arg2,它将输出:

脚本文件名: script.exp
第一个参数: arg1
第二个参数: arg2

expect中,你还可以使用$argc来获取传递给脚本的参数数量。

#!/usr/bin/expectputs "参数个数: $argc"

这段脚本会输出传递给脚本的参数数量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/664500.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

曲线拟合、多项式拟合、最小二乘法

最近在做自车轨迹预测的工作,遇到 曲线拟合、多项式拟合、最小二乘法这些概念有点不清晰, 做一些概念区别的总结: 曲线拟合用于查找一系列数据点的“最佳拟合”线或曲线。 大多数情况下,曲线拟合将产生一个函数,可用于…

蓝桥杯省赛无忧 课件70 第九次学长直播带练配套课件

01 混境之地5 02 最快洗车时间 03 安全序列 04 可构造的序列总数 05 拍照 06 破损的楼梯

Android Display显示框架整体流程

一.Android Display显示框架整体流程图

webassembly003 ggml.js试用(暂记)

git clone https://github.com/rahuldshetty/ggml.js-examples.gitpython -m http.sever启动服务器 虽然推理运行了一会,但是风扇没有任何响声。 Using Examples 感觉这个有点笨拙 Instruction: {dow you know about Uncaught invalid worker function to call: …

【数据结构】双向链表 超详细 (含:何时用一级指针或二级指针;指针域的指针是否要释放)

目录 一、简介 二. 双链表的实现 1.准备工作及其注意事项 1.1 先创建三个文件 1.2 注意事项:帮助高效记忆 1.3 关于什么时候 用 一级指针接收,什么时候用 二级指针接收? 1.4 释放节点时,要将节点地址 置为NULL&#xff0…

某赛通电子文档安全管理系统 UploadFileToCatalog SQL注入漏洞复现

0x01 产品简介 某赛通电子文档安全管理系统(简称:CDG)是一款电子文档安全加密软件,该系统利用驱动层透明加密技术,通过对电子文档的加密保护,防止内部员工泄密和外部人员非法窃取企业核心重要数据资产,对电子文档进行全生命周期防护,系统具有透明加密、主动加密、智能…

WordPress主题YIA的文章页评论内容为什么没有显示出来?

有些WordPress站长使用YIA主题后,在YIA主题设置的“基本”中没有开启“一键关闭评论功能”,而且文章也是允许评论的,但是评论框却不显示,最关键的是文章原本就有的评论内容也不显示,这是为什么呢? 根据YIA主…

决策树的相关知识点

📕参考:ysu老师课件西瓜书 1.决策树的基本概念 【决策树】:决策树是一种描述对样本数据进行分类的树形结构模型,由节点和有向边组成。其中每个内部节点表示一个属性上的判断,每个分支代表一个判断结果的输出&#xff…

和鲸科技与智谱AI达成合作,共建大模型生态基座

近日,上海和今信息科技有限公司(简称“和鲸科技”)与北京智谱华章科技有限公司(简称“智谱AI”)签订合作协议,双方将携手推动国产通用大模型的广泛应用与行业渗透,并积极赋能行业伙伴探索领域大…

回归预测 | Matlab实现CPO-BiLSTM【24年新算法】冠豪猪优化双向长短期记忆神经网络多变量回归预测

回归预测 | Matlab实现CPO-BiLSTM【24年新算法】冠豪猪优化双向长短期记忆神经网络多变量回归预测 目录 回归预测 | Matlab实现CPO-BiLSTM【24年新算法】冠豪猪优化双向长短期记忆神经网络多变量回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现CPO-B…

electron项目在内网环境的linux环境下进行打包

Linux需要的文件: electron-v13.0.0-linux-x64.zip appimage-12.0.1.7z snap-template-electron-4.0-1-amd64.tar.7z 下载慢或者下载失败的情况可以手动下载以上electron文件复制到指定文件夹下: 1.electron-v13.0.0-linux-x64.zip 复制到~/.cache/electron/目录下…

什么是ACL?

知识改变命运,技术就是要分享,有问题随时联系,免费答疑,欢迎联系! 厦门微思网络​​​​​​https://www.xmws.cn 华为认证\华为HCIA-Datacom\华为HCIP-Datacom\华为HCIE-Datacom Linux\RHCE\RHCE 9.0\RHCA\ Oracle OC…

IP 协议的相关特性

1. IP协议定义和特性 IP(Internet Protocol)协议是互联网中使用的网络协议之一,它的特性包括: 1. 无连接性:IP协议是一种无连接协议,每个数据包都是独立发送和处理的。因此,每个数据包都需要包含…

AI在线写作软件推荐:5款不可错过的写作工具

现在人工智能(AI)技术已经渗透到了各个领域,包括写作。AI在线写作软件的出现,为我们提供了更加高效、准确的写作工具。在本文中,我将向大家推荐5款功能强大的AI在线写作软件,这些软件可以帮助我们提高写作效…

python nacos-sdk-python 连接 nacos2.x版本,鉴权403解决办法

看nacos-sdk-python 的git项目提交记录,应该是已经解决了nacos2.x权限问题,但为什么还连接不上呢?因为最新代码,居然把以前鉴权代码删除了,具体原因不得而知。 解决办法: 1.把nacos-sdk-python里面params.…

redis 6.x集群搭建

redis6集群搭建 安装文件下载 redis-6.2.6.tar.gz 编译 tar -zxvf redis-6.2.6.tar.gz cd redis-6.2.6/ make MALLOClibc make install PREFIX/opt/soft/redis复制可执行文件 cp /opt/soft/redis/redis-cli /usr/bin/redis-cli cp /opt/soft/redis/redis-server /usr/bi…

小鱼深度产品测评之:阿里云自研PolarDBMySQL 版 Serverless,真正达到100%兼容 MySQL,分析性能达到开源数据400倍。

阿里云自研PolarDBMySQL 版 Serverless测评 一、 开箱二、 试用教程三、 使用感受3.1 查看资源包信息3.2 列表3.2.1 列表展示3.2.2 集群名称 3.3创建账号3.4 实例配置3.5 Serverless弹性压测3.5.1 遇到问题3.5.2 实操 四、 总结 一、 开箱 又到了体验新产品的时候了。 话不多说…

基于Python的招聘网站爬虫及可视化的设计与实现

摘要:现在,随着互联网网络的飞速发展,人们获取信息的最重要来源也由报纸、电视转变为了互联网。互联网的广泛应用使网络的数据量呈指数增长,让人们得到了更新、更完整的海量信息的同时,也使得人们在提取自己最想要的信…

tcpdump在手机上的使用

首先手机得root才可以,主要分析手机与手机的通信协议 我使用的是一加9pro, root方法参考一加全能盒子、一加全能工具箱官方网站——大侠阿木 (daxiaamu.com)https://optool.daxiaamu.com/index.php tcpdump,要安装在/data/local/tmp下要arm6…

JProfiler for Mac/win:深度探索Java性能的终极工具

随着Java应用的日益普及,性能优化成为开发人员的重要任务。在众多性能分析工具中,JProfiler以其强大的功能和直观的界面脱颖而出。本文将深入探讨JProfiler的优势,以及如何利用它来提升Java应用的性能。 一、JProfiler的核心优势 全面性能监…