【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)
上一篇 2022年7月16日 下午8:36
下一篇 2022年7月16日 下午8:46


相关推荐

  • 关于adventure的短语_adventureinwellies

    关于adventure的短语_adventureinwelliesdown了个AdventureWorks2008的数据库备份,没办法谁让一些书上用这个库作为示例呢。主要差别是Person表格,搞不清楚为什么MS在搞什么。用MS提供的安装文件,就是装不上。还有很多人提到那个FileStream的设置,可是根本没用。

    2025年11月1日
    3
  • QT计算器 之 大数运算「建议收藏」

    QT计算器 之 大数运算「建议收藏」1、简介:计算器是我们生活中很常见的东西,它可以由多种语言多种方式来实现,今天我想讲的是基于C++语言,由QT实现的可以计算大数的简单计算器。2、作品演示:(1)简单四则运算(2)大数运算3、重点原理讲解(1)四则运算如何实现(2)大数的加减乘除4、代码主体框架1个主函数;两个类:一个calculator类,实现了对界面的布局,其实这个布局很简单,就设置

    2026年4月17日
    4
  • 关于this指针

    关于this指针一个类的对象中实际只包含了该对象的数据成员信息,当我们创建了多个类的对象时,使对象1调用该类的成员函数,为什么可以改变对象1中的信息,而不去设置其他对象的信息?成员函数在类中只有一份,所有该类的对象共同使用,编译器是如何识别并处理的呢?编译器识别一个类分为三步:1.识别类的类名2.识别类的成员变量3.识别类的成员函数并对成员函数进行修改修改方式:成员函数有一个隐藏…

    2022年5月16日
    53
  • 中国移动DNS大全「建议收藏」

    中国移动DNSIP地址,包括广东移动DNS,上海移动DNS,北京移动DNS,陕西移动DNS,江苏移动,山东移动DNS等共全国32个移动省份的DNSIP地址。DNS用户数国家省份地区运营商用户数排名(省份)用户数比例(省份)112.4.0.551111900中国陕西西安移动59.84%221.131.143.691022100中国…

    2022年4月15日
    941
  • 几种线程安全的Map

    几种线程安全的MapJava 中平时用的最多的 map 就是 hashmap 但是它却是线程不安全的 那除了 hashmap 还有哪些常见的线程安全的 map 1 hashtableMap String Object hashtable newHashtable String Object 这是所有人最先想到的 那为什么她是线程安全的 那就看看她的源码 我们可以看出我们常用的 put get String Object String Object

    2026年3月17日
    2
  • linux系列之常用运维命令整理笔录

    本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新free-m其中:m表示兆,也可以用g,注意都要小写Men:表示物理内存统计total:表示物理内存总数(total=used+free)use…

    2022年4月7日
    42

发表回复

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

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