Skip to content
SRE运维进阶之路SRE运维进阶之路
devops
github icon
      • 第三章 特殊字符
          • 4.1 变量替换
            • 4.2 变量赋值
              • =
              • 4.3 Bash变量是弱类型的
                • /code/shell/part2/04_4_special_variable_types
                • 第六章 退出与退出状态
                • 第四部分 命令
                  • 第六部分 Google Shell 风格指南
                  • 前端学习笔记

                    4.2 变量赋值

                    author iconLinuxStorycalendar icon2023年4月19日category icon
                    • Linux
                    tag icon
                    • Bash
                    timer icon大约 1 分钟

                    此页内容
                    • =

                    # 4.2 变量赋值

                    # =

                    赋值操作符(在其前后没有空白符)。

                    noitce 不要混淆 = 与 -eq,后者用来进行比较而非赋值。

                    同时也要注意 = 根据使用场景既可作赋值操作符,也可作比较操作符。

                    样例 4-2. 变量赋值

                    #!/bin/bash
                    # 非引用形式变量
                    
                    echo
                    
                    # 什么时候变量是非引用形式,即变量名前没有 '$' 符号的呢?
                    # 当变量在被赋值而不是被引用时。
                    
                    # 赋值
                    a=879
                    echo "The value of \"a\" is $a."
                    
                    # 使用 'let' 进行赋值
                    let a=16+5
                    echo "The value of \"a\" is now $a."
                    
                    echo
                    
                    # 在 'for' 循环中赋值(隐式赋值)
                    echo -n "Values of \"a\" in the loop are: "
                    for a in 7 8 9 11
                    do
                      echo -n "$a "
                    done
                    
                    echo
                    echo
                    
                    # 在 'read' 表达式中(另一种赋值形式)
                    echo -n "Enter \"a\" "
                    read a
                    echo "The value of \"a\" is now $a."
                    
                    echo
                    
                    exit 0
                    
                    1
                    2
                    3
                    4
                    5
                    6
                    7
                    8
                    9
                    10
                    11
                    12
                    13
                    14
                    15
                    16
                    17
                    18
                    19
                    20
                    21
                    22
                    23
                    24
                    25
                    26
                    27
                    28
                    29
                    30
                    31
                    32
                    33
                    34
                    35
                    36

                    样例 4-3. 奇妙的变量赋值

                    #!/bin/bash
                    
                    a=23              # 简单形式
                    echo $a
                    b=$a
                    echo $b
                    
                    # 来我们玩点炫的(命令替换)。
                    
                    a=`echo Hello!`   # 将 'echo' 命令的结果赋值给 'a'
                    echo $a
                    #  注意在命令替换结构中包含感叹号(!)在命令行中使用将会失效,
                    #+ 因为它将会触发 Bash 的历史(history)机制。
                    #  在shell脚本内,Bash 的历史机制默认关闭。
                    
                    a=`ls -l`         # 将 'ls -l' 命令的结果赋值给 'a'
                    echo $a           # 不带引号引用,将会移除所有的制表符与分行符
                    echo
                    echo "$a"         # 引号引用变量将会保留空白符
                                      # 查看 "引用" 章节。
                                      
                    exit 0
                    
                    1
                    2
                    3
                    4
                    5
                    6
                    7
                    8
                    9
                    10
                    11
                    12
                    13
                    14
                    15
                    16
                    17
                    18
                    19
                    20
                    21
                    22

                    使用 $(...) 形式进行赋值(与反引号不同的新形式),与命令替换形式相似。

                    # 摘自 /etc/rc.d/rc.local
                    R=$(cat /etc/redhat-release)
                    arch=$(uname -m)
                    
                    1
                    2
                    3
                    edit icon编辑此页open in new window
                    上次编辑于: 2023/4/19 13:08:31
                    贡献者: clay-wangzhi
                    上一页
                    4.1 变量替换
                    下一页
                    4.3 Bash变量是弱类型的
                    备案号:冀ICP备2021007336号
                    Copyright © 2023 LinuxStory