码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【linux】从linux学软件开发 | 变量与echo


    从linux学软件开发

      • bash
        • 一、变量的设置规则 echo
          • 1.1、 变量与变量内容以一个等号【=】来连接
          • 1.2、 变量名称只能是英文字母与数字
          • 1.3、 变量内容若有空格可使用双引号或单引号
            • 1)双引号内的特殊字符如 $ 等 可以保有原本的特性
            • 2)单引号内的特殊字符则仅为一般字符 (纯文本)
          • 1.4、 可用跳脱字符“ \ ”将特殊符号变成一般字符
          • 1.5、 $(指令)
            • 1)获取系统核心的版本(通用指令)
            • 2)可用 "$变量名称" 或 ${变量} 累加内容
            • 3)需要以 export 来使变量变成环境变量
            • 4)推荐命名方式
            • 5)取消变量的方法为使用 unset
          • 1.6、 bash 子程序
        • 二、回顾
          • 2.1、 在变量的设置当中,单引号与双引号的用途有何不同?

    开篇:《从linux学软件开发》这个系列也是以《鸟哥Linux私房菜第四版》为基础外加《自己动手写docker》,想要学习任何语言与框架,linux都是毕竟之路,之前只顾着开发,忽略了部署这个环节,根据时代的潮流,分布式的盛行,devops被单独成立为了一个职业,通过看到《自己动手写docker》终于茅塞顿开,开发的本质就是操作linux kernel,所以linux是我们成为编程大师的唯一途径

    bash

    一、变量的设置规则 echo

    1.1、 变量与变量内容以一个等号【=】来连接

    如下代码:(正确的赋值)

    jack=123
    
    • 1

    如果加上了空则,bash则按照指令处理

    jack = 123
    zsh: command not found: jack  # 报错信息
    
    • 1
    • 2

    1.2、 变量名称只能是英文字母与数字

    但开头不能是数字
    如下错误示例:

    2hb=123 
    zsh: command not found: 2hb=123 # 报错信息
    
    • 1
    • 2

    1.3、 变量内容若有空格可使用双引号或单引号

    1)双引号内的特殊字符如 $ 等 可以保有原本的特性

    如下代码:

    var="lang is $LANG" 
    echo $var 
    
    • 1
    • 2

    在linux运行如下:
    在这里插入图片描述
    但是在macos下会有些不用(linux不同发行版问题)
    在macos运行如下:
    在这里插入图片描述

    2)单引号内的特殊字符则仅为一般字符 (纯文本)
    var='lang is $LANG' 
    echo $var
    lang is $LANG  # 输出
    
    • 1
    • 2
    • 3

    1.4、 可用跳脱字符“ \ ”将特殊符号变成一般字符

    如: [Enter], $, , 空白字符, '等
    代码如下:

    myname=Vbird\ Tsai
    echo $myname 
    Vbird Tsai  # 输出
    
    • 1
    • 2
    • 3

    如果不使用反斜杠 \ 代码如下:

    myname=Vbird Tsai 
    zsh: command not found: Tsai  # 输出
    
    • 1
    • 2

    1.5、 $(指令)

    1)获取系统核心的版本(通用指令)

    1、uname -r : 显示操作系统的发行版号
    2、uname -a :显示系统名、节点名称、操作系统的发行版号、内核版本等等。

    在一串指令的执行中,还需要借由其他额外的指令所提供的信息时,可以使用反单引号“ 指令 ”或 “$(指令)”。特别注意,那个 ` 是键盘上方的数字键 1 左边那个按键,而不是单引号! 例如想要取得核心版本的设置: “version=$(uname -r)”再“echo $version”可得“3.10.0-229.el7.x86_64”

    在linux运行如下:
    在这里插入图片描述

    2)可用 “$变量名称” 或 ${变量} 累加内容

    若该变量为扩增变量内容时,则可用 “$变量名称” 或 ${变量} 累加内容

    方式一:

    PATH="$PATH":/home/bin
    echo $PATH
    
    • 1
    • 2

    方式二:

    PATH=${PATH}:/home/bin
    echo $PATH
    
    • 1
    • 2

    输出内容如下:
    在这里插入图片描述

    3)需要以 export 来使变量变成环境变量

    若该变量需要在其他子程序执行,则需要以 export 来使变量变成环境变量: “export PATH”
    最佳实践:
    在这里插入图片描述

    4)推荐命名方式

    通常大写字符为系统默认变量,自行设置变量可以使用小写字符,方便判断 (纯粹依照 使用者兴趣与嗜好)

    5)取消变量的方法为使用 unset

    “unset 变量名称”例如取消 myname 的设置: “unset myname”

    1.6、 bash 子程序

    什么是“Bash子程序”呢?
    就是说,在我目前这个 shell 的情况下,去启用另一个新的 shell ,新的那 个 shell 就是子程序啦!在一般的状态下,父程序的自订变量是无法在子程序内使用的。但是 通过 export 将变量变成环境变量后,就能够在子程序下面应用了。(见上面 1.5 第三点)

    范例六:如何进入到您目前核心的模块目录? 
    cd /lib/modules/`uname -r`/kernel
    cd /lib/modules/$(uname -r)/kernel # 以此例较佳!
    
    • 1
    • 2
    • 3

    二、回顾

    2.1、 在变量的设置当中,单引号与双引号的用途有何不同?

    单引号与双引号的最大不 同在于双引号仍然可以保有变量的内容,但单引号内仅能是一般字符 ,而不会有特殊符号。

    假设您定义了一个变量, name=VBird ,现在想以 name 这个变 量的内容定义出 myname 显示 VBird its me 这个内容,要如何订定呢?

    name=VBird 
    echo $name 
    VBird 
    myname="$name its me" 
    echo $myname 
    VBird its me 
    myname='$name its me' 
    echo $myname 
    $name its me
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    发现了吗?没错!使用了单引号的时候,那么 $name 将失去原有的变量内容,仅为一般字符 的显示型态而已!这里必需要特别小心在意!

  • 相关阅读:
    网页使用之如何返回json/xml
    探寻蓝牙的未来:从蓝牙1.0到蓝牙5.4,如何引领无线连接革命?
    李沐论文精度系列之七:Two-Stream双流网络、I3D
    C++auto 关键字
    JavaScript事件执行机制
    Linux入门第二讲
    Linux编程:获取GMT(UTC)与Local时间,及其线程安全
    SpringBoot 使用与介绍
    浅入深出的微前端MicroApp
    openldap-sasl身份认证镜像
  • 原文地址:https://blog.csdn.net/wanglei19891210/article/details/125737243
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号