Linux学习之变量引用和作用范围

这篇具有很好参考价值的文章主要介绍了Linux学习之变量引用和作用范围。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用${变量名}或者$变量名就可以引用变量,$变量名其实是${变量名}的省略写法。
要是变量名后边还有其他字符就需要加上{},比如helloToBash这个变量的值是Hello Bash,而需要输出的字符串是“Hello Bashing”,这样就需要加上{},演示如下:
echo $helloToBashing输出为空,而echo ${helloToBash}ing正常输出为“Hello Bashing”。
Linux学习之变量引用和作用范围,Linux基础学习,linux,学习,运维

变量名=变量值
使用let为变量赋值
将命令赋值给变量
将命令结果赋值给变量,使用$()或者``(两个单反引号)

使用这四种方法创建的变量只针对于当前终端或者说当前Shell生效,这是变量的作用范围,这里拿变量名=变量值进行验证一下。
ps可以看到当前的Shell的PID为19805
Linux学习之变量引用和作用范围,Linux基础学习,linux,学习,运维

whospeak=parent在父Shell给变量whospeak赋值为parentbash进入一个子Shell,ps看一下Shell信息,echo ${whospeak}可以看到变量whospeak的值为空,就说明父Shell定义的变量在子Shell中不起作用,在然后重新执行whospeak=child
Linux学习之变量引用和作用范围,Linux基础学习,linux,学习,运维

exit可以退出子Shell,ps看一下Shell信息,然后再执行echo ${parentString}
Linux学习之变量引用和作用范围,Linux基础学习,linux,学习,运维

bash 脚本文件执行时,会产生一个子Shell,所以在脚本文件里边定义的变量,在当前Shell也不生效。

context="hello child"在当前Shell里边定义一个变量context,然后使用vim contexttest.shcontexttest.sh写入下边的内容:

#!/bin/bash

echo ${context}

最后输入EOF退出保存。

Linux学习之变量引用和作用范围,Linux基础学习,linux,学习,运维

chmod u+rx contexttest.sh为脚本添加上读和可执行权限。
Linux学习之变量引用和作用范围,Linux基础学习,linux,学习,运维

bash contexttest.sh/root/contexttest.sh都无法取到变量context的值。
Linux学习之变量引用和作用范围,Linux基础学习,linux,学习,运维

source contexttest.sh. contexttest.sh可以取到变量context的值。
Linux学习之变量引用和作用范围,Linux基础学习,linux,学习,运维

而可以使用export 变量就可以让子Shell使用父Shell定义的变量。
export context执行之后,再次执行bash contexttest.sh/root/contexttest.sh就可以取到变量context的值。
Linux学习之变量引用和作用范围,Linux基础学习,linux,学习,运维

也可以在定义变量的时候,直接使用export 变量=变量值
Linux学习之变量引用和作用范围,Linux基础学习,linux,学习,运维
unset 变量名可以取消环境变量,如下图看到unset testunsettestunset给取消。
Linux学习之变量引用和作用范围,Linux基础学习,linux,学习,运维

此文章为7月Day 13学习笔记,内容来源于极客时间《Linux 实战技能 100 讲》。文章来源地址https://www.toymoban.com/news/detail-557969.html

到了这里,关于Linux学习之变量引用和作用范围的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux学习之端口、网络协议及查看端口占用情况(学习内容记录)

    端口 :设备与外界通讯交流的出口 网络协议: 网络协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则。 HTTP协议: HTTP协议 (超文本传输协议)是一种网络通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。默认

    2023年04月24日
    浏览(49)
  • python基础(5):深入理解 python 中的赋值、引用、拷贝、作用域

    目录 python基础(5):深入理解 python 中的赋值、引用、拷贝、作用域 1、先来看个问题吧: 2、引用 VS 拷贝: 3、增强赋值以及共享引用:

    2024年02月08日
    浏览(46)
  • 【C++初阶】C++基础(下)——引用、内联函数、auto关键字、基于范围的for循环、指针空值nullptr

      目录 1. 引用 1.1 引用概念 1.2 引用特性 1.3 常引用 1.4 使用场景 1.5 传值、传引用效率比较 1.6 引用和指针的区别 2. 内联函数 2.1 概念 2.2 特性 3.auto(C++11) 3.1 类型别名思考 3.2 auto简介 3.3 auto的使用细则 3.4 auto不能推导的场景 4. 基于范围的for循环(C++11) 4.1 

    2024年02月15日
    浏览(74)
  • 学习Linux的注意事项(使用经验;目录作用;服务器注意事项)

    本篇分享学习Linux过程中的一些经验 Linux严格区分大小写 Linux中所有内容以文件形式保存 ,包括硬件,Linux是以管理文件的方式操作硬件 硬盘文件是 /dev/sd[a-p] 光盘文件是 /dev/sr0 等 对于设置需要写入文件,命令行的设置在重启之后就会失效,只有下入文件才可以保存下来 文

    2024年02月11日
    浏览(69)
  • Linux shell编程学习笔记6:查看和设置变量的常用命令

    上节我们介绍了变量的变量命名规则、变量类型、使用变量时要注意的事项,今天我们学习一下查看和设置变量的一些常用命令,包括变量的提升,有些命令在之前的实例中已经使用过了。 语法格式:echo [参数] [输出内容] 常用参数: -e:支持反斜线控制的字符转换(具体参

    2024年02月07日
    浏览(42)
  • 一、Go基础知识2、iota、匿名变量与变量作用域的小细节

    1、iota是特殊常量,可以理解为是一个可被编译器修改的常量。 2、iota中有一个计数器,会自动加1,自增类型默认是int类型。 3、如果中断了iota则必须显示恢复。参考示例二。 4、iota简化了const类型的定义。 5、每次出现const的时候,iota归零。 示例一: 运行结果: 两个const打

    2024年02月05日
    浏览(36)
  • 【Linux学习】多线程——同步 | 条件变量 | 基于阻塞队列的生产者消费者模型

    🐱作者:一只大喵咪1201 🐱专栏:《Linux学习》 🔥格言: 你只管努力,剩下的交给时间! 以生活中消费者生产者为例: 生活中,我们大部分人都扮演着消费者的角色,会经常在超市买东西,比如买方便面,而超市的方便面是由供应商生成的。所以我们就是消费者,供应商

    2024年02月05日
    浏览(50)
  • JS深入学习笔记 - 第三章.变量作用域与内存

    1.原始值和引用值 ECMScript变量包含两种不同类型是数据:原始值和引用值。 原始值:最简单的数据。有6中原始值:Undefined、Null、Boolean、Number、String和Symbol。原始值是按值访问。 引用值:由多个值构成的对象。三大引用类型:1.object 2.Array类型 3.Function类型。引用值是保存在

    2024年02月08日
    浏览(52)
  • 【python基础】—函数def()的定义与调用、参数、return返回值及变量作用域

    语法: 举例: 上面我们定义一个名字为hello的函数,括号内部是函数接收的参数name,紧接着就是函数的功能代码。 多次调用 位置参数 这里的\\\"手拍黄瓜\\\"和\\\"大米饭\\\"是对应参数appetizer和course的位置顺序传递的,所以被叫作位置参数,这也是最常见的参数类型。 默认参数 注意

    2024年02月02日
    浏览(39)
  • FPGA设计Verilog基础之数据类型的作用和特点、常量和变量的代码示例详解

    注意:后续技术分享,第一时间更新,以及更多更及时的技术资讯和学习技术资料 ,将在公众号 CTO Plus 发布,请关注公众号: CTO Plus 在Verilog中,有多种数据类型可供使用,包括位向量类型、整数类型、实数类型、布尔型、时间类型和字符串类型等。下面详细介绍Verilog的所

    2024年02月03日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包