分享

Linux Shell Bash 变量赋值 - Powered by PHPWind.net

 xrzs 2010-03-03

Linux Shell Bash 变量赋值

=

赋值操作(前后都不能有空白)

Caution

因为=-eq都可以用做条件测试操作, 所以不要与这里的赋值操作相混淆.

注意: =既可以用做条件测试操作, 也可以用于赋值操作, 这需要视具体的上下文而定.


例子 4-2. 简单的变量赋值

  1 #!/bin/bash
2 # "裸体"变量

4 echo

6 # 变量什么时候是"裸体"的, 比如前边少了$的时候?
7 # 当它被赋值的时候, 而不是被引用的时候.

9 # 赋值
10 a=879
11 echo "The value of \"a\" is $a."
12 
13 # 使用'let'赋值
14 let a=16+5
15 echo "The value of \"a\" is now $a."
16 
17 echo
18 
19 # 在'for'循环中(事实上, 这是一种伪赋值):
20 echo -n "Values of \"a\" in the loop are: "
21 for a in 7 8 9 11
22 do
23  echo -n "$a "
24 done
25 
26 echo
27 echo
28 
29 # 使用'read'命令进行赋值(这也是一种赋值的类型):
30 echo -n "Enter \"a\" "
31 read a
32 echo "The value of \"a\" is now $a."
33 
34 echo
35 
36 exit 0


例子 4-3. 简单和复杂, 两种类型的变量赋值

  1 #!/bin/bash

3 a=23 # 简单的赋值
4 echo $a
5 b=$a
6 echo $b

8 # 现在让我们来点小变化(命令替换).

10 a=`echo Hello!` # 把'echo'命令的结果传给变量'a'
11 echo $a
12 # 注意, 如果在一个#+的命令替换结构中包含一个(!)的话,
13 #+ 那么在命令行下将无法工作.
14 #+ 因为这触发了Bash的"历史机制."
15 # 但是, 在脚本中使用的话, 历史功能是被禁用的, 所以就能够正常的运行.
16 
17 a=`ls -l` # 把'ls -l'的结果赋值给'a'
18 echo $a # 然而, 如果没有引号的话将会删除ls结果中多余的tab和换行符.
19 echo
20 echo "$a" # 如果加上引号的话, 那么就会保留ls结果中的空白符.
21  # (具体请参阅"引用"的相关章节.)
22 
23 exit 0

使用$(...)机制来进行变量赋值(这是一种比后置引用(反引号`)更新的一种方法). 事实上这两种方法都是命令替换的一种形式.

  1 # From /etc/rc.d/rc.local
2 R=$(cat /etc/redhat-release)
3 arch=$(uname -m)

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多