Linux——使用命令行参数管理环境变量

目录

使用命令行参数获取用户在DOS命令行输入的指令:

        方法:代码如下:

使用命令行参数获取并打印部分或者整体环境变量的方法: 

方法1:

 运行结果:

方法2:使用外部链接environ:


使用命令行参数获取用户在DOS命令行输入的指令:

        方法:代码如下:

 

 上方代码解析:
        argc : 命令行传入参数的总个数
        argv : char* argv[ ]是一个指针数组,里面存放的元素全是指针,这些指针会指向所有的命令行参数,例如:argv[0]指向程序的全路径名(这个是固定的),argv[1]指向在DOS命令行中执行程序名后的第一个字符串,argv[2]指向第二个DOS命令行输入的第二个子字符串。

        

        也就是说下标0位置处的argv指向的永远是指向该文件的路径名,剩下的从下标1开始的元素指针指向的是文件后面的各个指令。

编译后运行该结果: 

 

        如上,在Dos命令行中只输入了该程序的路径名,所以argc的个数为1,那么argv[0]指向的就是程序的全路径名。 

 当我们在DOS命令行中不仅运行该程序,还在其后面+选项:

 

        解析:实际上我们在命令行上输入的命令,是一个长字符串,例如:“Is -a -d”,系统会将它们会分隔成一个个小的子字符串,即”Is”然后被存放在char* argv[ ]这个指针数组中,所以argv[0]=该程序;argv[1]=ls指令,argv[2]=“-a”指令。argc是int型,指的是子字符串的个数。

        假如argc数值为10,那么数组从下标1索引处开始会有9个元素指针分别指向9个子字符串。直到argv数组遍历到最后一个元素指针的下一个指针处,发现该指针指向NULL,停止遍历,终止循环。

 那么可根据int main中的命令行参数去修改上面那种写法: 

        针对方法1的写法有2种修改方式,一种是使用argv[i]可以直接做循环的限制条件;另一种就是使用*(argv+i) ——解引用指针位置。

既然我们可以用int main()的命令行参数去获取用户在DOS命令下输入的指令,接下来就是重点了:

        那么我们就可以根据用户输入的DOS指令,通过数组去获取用户输入的每一个子字符串,通过这些字符串去执行特定的命令,如下:

 

 

  通过写好该代码后,编译运行:

 

 

  结果解析:数组argv[0]获取到该程序的全路径名,argv[1]获取到用户输入的-a选项,根据-a选项可以执行特定的作用。

        就好比我们输入ls -a,Shell操作系统也是通过数组argv[0]去获取到ls指令(ls的实现也是代码文件)的路径名,argv[1]获取到-a选项,使用if语句与strcmp比较函数判定,然后执行特定的作用,即显示当前路径下所有的隐藏文件,这就是ls指令下 -a选项的作用。

剩下的案例也是一样的。

 


使用命令行参数获取并打印部分或者整体环境变量的方法: 

方法1:

        在int main的命令行参数种,再多加一个char* env[] ,它的类型也是字符指针,该数组中的每一个元素都指向环境变量的一行内容。我们还是利用循环去遍历env数组中的每一个元素,进而获取到环境变量中的所有内容!

 运行结果:


方法2:使用外部链接environ:

 

代码:

 

运行结果:

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

article-并联机械手爪运动学分析

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3aNKIR4E-1685371700448)(data:image/svgxml;utf8, )] 2.4.3 基于Robotics Toolbox的工具箱的模型检测 上文中,我们已经对采摘机器手爪运动学理论模型进行了创建,接下来要用MA…

【智慧排水】智慧排水监测系统助力城市抗洪排涝建设

随着城市的发展和生活水平的提高,城市排水系统面临着各种挑战和难题。虽然国家已经大力建设和改造雨污分流系统,以解决城市排水问题,但在实际应用中仍然存在着诸多难题,如雨污混接、偷排漏排、管道堵塞淤积、管道溢流和内涝等问题…

没有经验能做产品经理吗?

没有经验能做产品经理吗?这是一个经常被讨论的问题,因为很多人想转行成为产品经理,但他们没有相关的工作经验。这里我也给出一些解答。 一、产品经理的职责和技能 首先,让我们看一下产品经理的职责和技能。产品经理是负责产品开…

java项目打包方式

普通项目打包 项目内容很简单,只是引用了一个三方包。 打包步骤 File-Project Structure... 点击确定后选择Build - Build Artifacts.. 选择build即可,可以查看编译日志 maven项目打包 若果是普通项目就先转为maven项目。 右键项目选择第二项add frame…

SpringCloud Nacos实战应用

目录 1 Nacos安装1.1 Nacos概要1.2 Nacos架构1.3 Nacos安装1.3.1 Nacos Derby安装1.3.2 Nacos MySQL版安装1.3.3 Docker 安装Nacos 2 Nacos功能应用2.1 Nacos服务注册与发现2.2 负载均衡2.3 配置中心2.4 灰度发布 3 Nacos集群3.1 集群架构3.2 Nacos集群部署3.3 客户端接入Nacos…

华为OD机试之打印机队列(Java源码)

打印机队列 题目描述 有5台打印机打印文件,每台打印机有自己的待打印队列。 因为打印的文件内容有轻重缓急之分,所以队列中的文件有1~10不同的代先级,其中 数字越大优先级越高 打印机会从自己的待打印队列中选择优先级最高的文件来打印。 如…

Windows 上安装和启动 Nacos 2.2.2 最新版本

文章目录 前言版本声明本地启动1. 下载 Nacos2. 开启鉴权配置3. 持久化数据库4. 启动 Nacos5. 启动测试 联系我 前言 本文旨在为您详细介绍如何安装和启动 Nacos 2.2.2 的最新版本,以及为 youlai-mall 开源商城版本的升级做好准备工作。 版本声明 名称版本操作系…

3年外包裸辞,面试阿里、字节全都一面挂,哭死.....

测试员可以先在外包积累经验,以后去大厂就很容易,基本不会被卡,事实果真如此吗?但是在我身上却是给了我很大一巴掌... 所谓今年今天履历只是不卡简历而已,如果面试答得稀烂,人家根本不会要你。况且要不是大…

c#快速入门

欢迎来到Cefler的博客😁 🕌博客主页:那个传说中的man的主页 🏠个人专栏:题目解析 🌎推荐文章:题目大解析2 目录 👉🏻 c#和c不同之处👉🏻程序文件的…

已签名驱动程序安装后提示“Windows无法验证此设备所需驱动程序数字签名”的原因和解决方法

在Windows 64位系统上,正常开启数字签名认证时,驱动程序软件需要经过微软数字签名的才允许被使用。否则在设备管理器下,安装完硬件驱动后设备上会有“黄色感叹号”标识,右键该设备属性提示:“Windows 无法验证此设备所…

SY8205同步降压DCDC可调电源模块(原理图和PCB)

SY8205同步buck降压电源模块,输入电压4.5-30V,输出电压0.6-30V可调,效率90%以上,最大连续输出电流5A,峰值电流6A。 开源链接:https://url.zeruns.tech/obGu3 SY8025数据手册下载地址:https://…

公文写作素材:为人处世类过渡句50例

1.身处逆境,敢于亮剑,坚毅前行,方能逆势突围;面对困难,坚定信心,敢拼敢闯,定能笑到最后。 2.没有海纳百川的胸怀,怎能容得下不同性格的人;没有从善如流的雅量&#xff0…

java程序1补充:从键盘输入圆的半径,求圆的周长和面积(简易与交互两版)

编写一个java程序,从键盘输入圆的半径,求圆的周长和面积,并输出。 要求: (1)半径仅考虑int型正整数,并综合利用所学较好地处理异常输入,包括非法整数、负整数输入时的处理。输入半…

大模型对世界的改变,从一时一地,到无处不在、无时不有

作者 | 曾响铃 文 | 响铃说 大模型正在中国遍地开花,做过的没做过的都要过来参合一下。 汹涌浪潮中,不免有更多人开始关注那个最先发布的文心一言。 全球科技大厂中第一个发布GPT大模型产品的百度,在刚刚的中关村论坛上透露了一些文心一言…

OpenCV中的图像处理3.7-3.8(五)边缘检测、图像金字塔

目录 3.7 边缘检测目标理论OpenCV中的Canny边缘检测其他资源练习 3.8 图像金字塔目标理论使用金字塔进行图像混合其他资源 翻译及二次校对:cvtutorials.com 编辑者:廿瓶鲸(和鲸社区Siby团队成员) 3.7 边缘检测 目标 在本章中&a…

ChatGPT在智能外呼机器人领域的应用

随着人工智能技术的不断发展,自然语言处理(NLP)技术也逐渐成为各行各业的热门技术。其中,ChatGPT技术是近年来备受关注的技术之一。ChatGPT技术是一种基于自然语言处理和深度学习的人工智能技术,它可以处理自然语言文本,实现自动化…

智能排班系统 【管理系统功能、操作说明——上篇】

文章目录 功能设计共有功能系统管理员企业管理员门店管理员门店员工 页面与功能展示用户登录企业注册系统首页系统管理员首页企业管理员首页门店管理员首页 个人中心菜单管理日志管理操作日志登录日志 功能设计 不同的角色关注的任务和功能不同,针对不同的角色&…

Docker安装OpenWrt

我笔记本MacOs安装Docker OpenWrt 失败了,网络一直容器内外无法访问. 今天使用虚拟机安装一下,虚拟机使用Parallels,系统使用kali 一、安装docker sudo apt install docker.io 二、把网卡混杂模式打开 根据您当前的ip查看网卡!!! 在您的liu…

【Python json】零基础也能轻松掌握的学习路线与参考资料

Python中的JSON模块主要用于将Python对象序列化成JSON数据或解析包含JSON数据的字符串。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。由于JSON在Web应用中的广泛使用…

pdf怎么压缩得小一点?软件压缩更高效

PDF可以在不同操作系统和设备上实现高保真的排版和格式化。然而,随着文档的不断增多和文件大小的增加,传输和存储PDF文件也变得越来越困难。为了解决这个问题,可以使用PDF压缩技术来减小文件大小,提高传输效率。本文将介绍PDF压缩…