首页 > 系统相关 >Shell编程语法之变量、常量

Shell编程语法之变量、常量

时间:2024-12-15 23:03:44浏览次数:8  
标签:Shell 常量 read 编程 传递 拼接 赋值 变量名 变量

Shell的变量、常量

变量


变量就是程序运行过程中其值可以发生改变的量

变量的命名规范

应该见名知意,同时遵循如下规则

  • 以字母或下划线开头,剩下的部分可以是:字母、数字、下划线
    最好遵循下述规范:
    • 以字母开头
    • 使用中划线或者下划线做单词的连接 high_student
    • 同类型的用数字区分 student1 student2
    • 对于文件名的命名最好在末尾加上拓展名 score_x.txt score_shi.sh
    • 不要带有空格、?、*等特殊字符
    • 不能使用bash中的关键字,例如if,for,while,do等
    • 不要和系统环境变量冲突

变量定义

变量名=值
注意:等号左右两边不能有空格!

变量引用

$变量名

如果是打印百分比,建议使用${变量名}%

代码和运行结果:
在这里插入图片描述

变量删除

unset 变量名
在这里插入图片描述

变量的使用场景

场景一:直接赋值

变量名=变量值
在这里插入图片描述

场景二:脚本运行传值

从调用脚本时传入的位置参数获取变量值:./a1.sh a1 a2 a3
需要用到$ n获取第n个位置参数值,超过10需要用${n}

${0}代表第一行文字,从1开始传参,如果不用{}括住参数,如$12,就是 1 + 2 拼接,也就是 a + 2 拼接,也就是 a 2 , , 超出部分也不会赋值传递,所以 m , l 没有传递。 1+2拼接,也就是a+2拼接,也就是a2,,超出部分也不会赋值传递,所以m,l没有传递。 1+2拼接,也就是a+2拼接,也就是a2,,超出部分也不会赋值传递,所以m,l没有传递。 ?表示上一个命令的结果,$*表示全部
代码展示和运行结果:
在这里插入图片描述

场景三:用户交互传值

read接收用户的输入,即从键盘读入变量值
格式:

  • read 变量名
  • read -p "提示信息: " 变量名
  • read -t 5 -p "提示信息: " 变量名
    -t指定秒数
  • read -n 2 变量名
    -n读取的字符个数

echo输出
需要调用$变量

代码和运行结果:
在这里插入图片描述

常量

定义

readonly 变量

在这里插入图片描述

删除

需要下载gdb

yum install gdb

代码展示:

[root@master ~]# cat << EOF | gdb
> attach $$
> call unbind_variable("x")
> detach
> EOF

运行结果:
在这里插入图片描述

标签:Shell,常量,read,编程,传递,拼接,赋值,变量名,变量
From: https://blog.csdn.net/m0_64588135/article/details/144409057

相关文章

  • C++编程-使用树莓派Pico制作调光灯:电位器与LED亮度控制的C++实现
    在嵌入式系统中,电位器是一种简单而实用的元件,用于调节电压和模拟信号。在本项目中,我们将结合树莓派Pico,利用电位器控制LED的亮度,制作一个简单的调光灯。这不仅是一个有趣的硬件控制项目,也是学习C++编程与模拟信号处理的绝佳机会。一、项目介绍电位器是一种可调电阻,通过旋转......
  • HZCU 2024软件工程|第八组 智能编程测评系统
    一、背景随着编程技术的不断普及,越来越多的编程爱好者加入到软件开发的行列中。然而,编程本身的复杂性和高门槛,尤其是对于缺乏系统学习经验的编程爱好者来说,往往成为他们在学习和实践过程中面临的主要挑战。在这样的背景下,智能编程系统应运而生,旨在为编程爱好者提供一个测评平台,帮......
  • 【C 语言篇】函数模块拼图与代码复用灯塔:C 语言编程中探索函数调用的高效征程
    文章目录【C语言篇】函数模块拼图与代码复用灯塔:C语言编程中探索函数调用的高效征程前言一、创建和使用函数1.创建函数2.调用函数二、局部变量1.局部变量的特点2.局部变量的初始化3.局部变量的生命周期4.关于局部变量的总结三、全局变量1.全局变量的特点2......
  • 4、分析与设计工具(一)软件功能设计 - 编程实战工具系列文章
    四、软件功能设计工具四.一、软件功能设计 这次介绍软件功能设计工具,使用的是EnterpriseArchitect的UML设计软件。       1、EnterpriseArchitect下载:      EnterpriseArchitect16.1中文版的安装包和无限试用应用-工具软件      ......
  • Java——网络编程(上)
    1计算机网络(作用资源共享和信息传递)(计算机网络组成——>硬件——>计算机设备,外部设备,通信线路软件——>网络操作系统,网络管理软件,网络通信协议)计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理......
  • Java——网络编程(中)—TCP通讯(下)
    1双向通讯—创建服务端(双向通信是指通信双方中,任何一方都可为发送端,任何一方都可为接收端)(1创建ServerSocket对象,accept()返回socket)(2双向通讯——>也要创建键盘输入对象)(3通过与客户端对应的Socket对象获取输入流对象)(4通过与客户单对应的Socket对象获取输......
  • ShellHost 是 Windows 操作系统中的一个系统进程,它负责管理和运行与 Windows Shell(即
    ShellHost进程服务是什么?ShellHost是Windows操作系统中的一个系统进程,它负责管理和运行与WindowsShell(即用户界面)相关的一些功能。具体来说,ShellHost是WindowsShell的一部分,负责执行一些后台任务、处理用户界面请求、和管理Windows桌面环境的某些方面。ShellHost通......
  • 并发编程笔记三-ConditionObject源码深度解析
     一.ConditionObject概述        synchronized提供了wait和notify的方法实现线程在持有锁时,可以实现挂起,唤醒的操作。其实ReentrantLock也拥有这个功能,ReentrantLock提供了await和signal方法去实现类似wait和notify的功能。同样的,想执行await或者是signal就必须先持......
  • #oscp#渗透测试 kioptix level 3靶机getshell及提权教程
    声明!文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!!!!一、靶机搭建点击扫描虚拟机选择靶机使在文件夹即可二、信息收集前言信息收集阶段,因为这里是靶机,所以不需要做什么,但是实际渗透测试中,大家一定要学会正确的隐藏......
  • 说说你对自顶向下的编程方法的理解?
    自顶向下的编程方法(Top-DownProgramming)是一种软件开发策略,特别是在前端开发领域,这种方法强调从高层次、整体结构开始设计,逐步细化到具体实现细节。以下是对自顶向下编程方法在前端开发中的详细理解:1.高层设计自顶向下的方法首先关注的是系统的整体结构和功能需求。在前端开发......