码农知识堂 - 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 将失去原有的变量内容,仅为一般字符 的显示型态而已!这里必需要特别小心在意!

  • 相关阅读:
    Kafka&陌陌案例,220903,,
    如何制作网页链接自动录入工具
    nginx隐藏版本号、错误信息页面隐藏nginx软件、修改 HTTP 头信息中的connection 字段,防止回显具体版本号、curl命令
    谷粒商城笔记+踩坑(4)——商品服务-品牌管理
    一个 println 竟然比 volatile 还好使?
    Thread类的用法
    某猫投诉app逆向 【一鱼多吃app逆向】
    低代码平台如何借助Nginx实现网关服务
    网站安全方案
    速锐得解码匹配驾培驾考吉利几何E萤火虫数据应用智能评判系统
  • 原文地址:https://blog.csdn.net/wanglei19891210/article/details/125737243
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号