【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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • UVA – 11637 Garbage Remembering Exam (组合+可能性)

    UVA – 11637 Garbage Remembering Exam (组合+可能性)

    2022年1月4日
    38
  • fpga流水线设计思想_fpga视频容易入门

    fpga流水线设计思想_fpga视频容易入门流水线设计的思想来源是高流量,也就是说时间延迟固定的情况下尽可能的产生高的流量,使得整体的信号传输速率得到提升。这一概念我是最早在《高级FPGA设计——结构、实现和优化》(SteveKilts)一书中接触到的。作者在书中提到,高流量设计的抽象术语就是“流水线”。作者指出:流水线设计的优越性是新数据在前面的数据完成之前就可以进行处理。并给出一个例子,硬件实现计算一个数的三次方。这给出设计代码,用于下文分析比较。1.类似于软件的递归算法实现(非流水线结构)`timescale1ns/

    2022年8月14日
    1
  • 用python编写猴子吃桃问题_人工智能猴子摘香蕉

    用python编写猴子吃桃问题_人工智能猴子摘香蕉Java实现人工智能实验一,猴子摘香蕉,图形化展示

    2022年9月25日
    0
  • SQL server分页的四种方法(算很全面了)

    SQL server分页的四种方法(算很全面了)  这篇博客讲的是SQLserver的分页方法,用的SQLserver2012版本。下面都用pageIndex表示页数,pageSize表示一页包含的记录。并且下面涉及到具体例子的,设定查询第2页,每页含10条记录。  首先说一下SQLserver的分页与MySQL的分页的不同,mysql的分页直接是用limit(pageIndex-1),pageSize就可以完成,但是SQLse…

    2022年6月14日
    33
  • 公网IP和内网IP的区别[通俗易懂]

    公网IP和内网IP的区别[通俗易懂]最近在学习shell反弹这块的时候,在向源主机发送报文的时候,由于不了解公网IP和内网IP的区别,导致在监听端口这块一直没有捕获到信息,后来才知道是因为我用的公司的局域网是192开头的,属于内网,因此只能在内部进行通信,而不能与其他网络互连。因为本网络中的保留地址同样也可能被其他网络使用,如果进行网络互连,那么寻找路由时就会因为地址的不唯一而出现问题。因此总结下内网和公网的区别。内网,一般来说,也就是局域网,我们可以把局域网理解成一个小家庭,然后给我们每个家庭的成员都编上号,比如张三是192.168.1.

    2022年4月27日
    55
  • golang 激活码2021[在线序列号]

    golang 激活码2021[在线序列号],https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月18日
    131

发表回复

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

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