【Linux学习随笔】三、shell语法-变量「建议收藏」

【Linux学习随笔】三、shell语法-变量「建议收藏」Linux学习随笔随记,记录一些学习过程中的细节和遇到的问题,较为系统的整理自己的学习框架

大家好,又见面了,我是你们的朋友全栈君。

一、定义变量

shell语法中唯一的变量就是字符串,当然可以修改为局部变量或者为全局变量或其他形式

定义方法有三种

# 注意等号左边不能有多余空格,要不然会报错。结束语句不用打分号,跟python有点像,hh。

(1)任意字符串=’dududu’ #单引号定义字符串

(2)任意字符串=”dududu” #双引号定义字符串

(3)任意字符串=dududu #也可以不加引号

注意:单引号与双引号的区别是单引号中的内容在输出时会原样输出,相当于直接打印了。

至于不加引号的区别,读者可以自己试着玩一下。hh

双引号中的内容,解释器会取对应变量的值。这里可以用printf理解,当然shell语法中也有printf函数了。


二、使用变量

使用变量需要使用$符号,可以理解为索引对应变量中储存的值,或者${任意变量}。花括号并不是一定要打的,但有时候为了让解释器识别变量边界就必须要打,比如name=asd sdds,如果直接输出name的话,那么输出结果是asd

举例:

        name=dududu

        echo $name #输出dududu

        echo ${name} #输出dududu

        echo ${name}tuoluxingdong #输出dududutuoluxingdong

        # echo可以理解为输出

三、删除变量

unset 变量名

举例:

        name=dududu

        echo $name #输出dududu

        unset name

        echo $name #删除变量后再输出就会输出空行


四、补充细节

(1)局部变量与全局变量

        ①局部变量变为全局变量

        举例:

                name=dududu

                export name #方法一,这样name变量就变成了全局变量

                declare -x name #方法二,同样的效果,跟之前的改为可执行文件还蛮类似的,hh。

        ②全局变量变为局部变量

        举例:

                export name=dududu #设置该变量为全局变量

                declare +x name #改为局部变量 同①的方法二类似。hh。

(2)只读变量(可以理解为const,即不能修改该变量的值,只能输出

        举例:

                name=dududu

                readonly name #方法一,比较好理解 就是英文意思只能读取

                declare -r name #方法二,可以理解为去掉了name变量的修改权限

                name=tuoluxingdong #会报错,因为name变量为只读变量,不能修改值了

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/160467.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【算法】素数(质数)判断方法「建议收藏」

    【算法】素数(质数)判断方法「建议收藏」素数(质数)的判断在算法问题中经常遇到,这里小结几种常用的判断方法。首先,我们来看一下素数(质数)的定义:质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数。我们可以从它的定义得到判断素数的第一个方法:从2到n-1,判断是否存在能被n整除的数,既(n%i==0,2<=i<=n-1),如果有就不是素数,否则为素数。(这里为了比

    2022年6月18日
    31
  • 兄弟连新版Linux视频教程

    兄弟连新版Linux视频教程兄弟连新版Linux视频教程目录:F:\linux\兄弟连新版Linux视频教程├(1)云计算是什么东西集群又是嘛玩意?.mp4├(2)兄弟连新版Linux教程1.1.1Linux系统简介-UNIX发展历史和发行版本.mp4├(3)兄弟连新版Linux教程1.1.2Linux系统简介-Linux发展历史和发行版本.mp4├(4)兄弟连新版Linux教程1.2Linux系统简介-开源软件…

    2022年6月10日
    34
  • HttpServlet 实现 MySQL 数据库的插入操作

    HttpServlet 实现 MySQL 数据库的插入操作HttpServlet实现MySQL数据库的插入操作MySQL数据库及表的创建过程,请参考前文《MySQL数据库及数据表的创建》。本文重点来分步进行HttpServlet中,MySQL数据库的插入操作实现。实现步骤1.准备数据库的地址、用户名和密码publicstaticfinalStringurl=”jdbc:mysql://localhost:3306/budaye_test01″;publicstaticfinalStringname=”root

    2025年6月30日
    3
  • 分子排列不同会导致_《分子生物学》习题答案

    分子排列不同会导致_《分子生物学》习题答案《分子生物学》课后习题第1章绪论1.简述孟德尔、摩尔根和Waston等人对分子生物学发展的主要贡献。孟德尔是遗传学的奠基人,被誉为现代遗传学之父。他通过豌豆实验,发现了遗传学三大基本规律中的两个,分别为分离规律及自由组合规律。摩尔根发现了染色体的遗传机制,创立染色体遗传理论,是现代实验生物学奠基人。于1933年由于发现染色体在遗传中的作用,赢得了诺贝尔生理学或医学奖。Watson于1953年和克里…

    2022年7月11日
    22
  • Linux 内核编译(三天吐血经历!)[通俗易懂]

    Linux 内核编译(三天吐血经历!)[通俗易懂]写在前面的话:本人大二,东南大学一个软工狗,正在修一门名为《操作系统原理》的坑爹课!前几天做一个实验:编译Linux内核并向其增加一个系统调用。这个实验实在是太让人无语了,各种坑!昨天这个时候,我还在苦苦煎熬中。在今天凌晨四点才做好。为了让其他人少走一些弯路,鄙人就把自己的经验以及教训写下来。里面会有一些不足,希望大家多多指教~废话不多说,那就开始吧:一、实验前的准备:Vm

    2022年7月23日
    15
  • RenderControl输出html遇到的问题

    RenderControl输出html遇到的问题当我直接在后台用GridView gv=new GridView();gv.RenderControl(htmlwrite);没有问题,但是如果我从工具直接拖一个GridView到设计页面,在后台gv.RenderControl(htmlwrite);就会出现Control GridViewTotal of type GridView must be placed inside a f

    2022年7月20日
    15

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号