shell变量学习笔记

变量赋值,一般的和比较特殊的:
# Simple case
a=23     
echo $a
b=$a
echo $b

[root@rong2 ~]# a=`echo Hello!`
-bash: !`: event not found
注意,如果在命令扩展结构中使用一个(!)的话,在命令行中将不能工作,因为这触发了 Bash的"历史机制".
a=`ls -l`            #  把ls -l 的结果给 a
echo $a           #  别忘了,这么引用的话,ls 的结果中的所有空白部分都没(包括换行)
echo "$a"         # 这么引用就正常了,保留了空白

使用$(...)机制进行的变量赋值(除去使用``来赋值的另外一种新方法). 事实上这两种方法都是
命令替换的一种形式.

[root@rong2 ~]# a=2334
[root@rong2 ~]# let "a += 1"
[root@rong2 ~]# echo "a=$a"
a=2335
[root@rong2 ~]# b=${a/23/BB}            # 将23替换成BB
[root@rong2 ~]# echo "b=$b"
b=BB35

空变量会怎样:
[root@rong2 ~]# e=""
[root@rong2 ~]# echo "e=$e"
e=
[root@rong2 ~]# let "e+=1"
[root@rong2 ~]# echo "e=$e"
e=1
[root@rong2 ~]# echo "e=$e"
e=1
[root@rong2 ~]# let "e+=1"
[root@rong2 ~]# echo "e=$e"
e=2

未声明变量会怎样:
[root@rong2 ~]# echo "f=$f"
f=
[root@rong2 ~]# let "f+=1"
[root@rong2 ~]# echo "f=$f"
f=1


如果一个脚本设置了环境变量,需要export 它,来通知本脚本的环境,这是export命令的功能。脚本只能对它产生的子进程export 变量.一个从命令行被调用的脚本export 的变量,将不能影响调用这个脚本的那个命令行shell 的环境.


位置变量:
就是从命令行中传进来的参数,$0, $1, $2, $3...
$0就是脚本文件的名字,$1 是第一个参数,$2 为第2 个...,参见[1]( 有$0的说明),$9以后就需要打括号了,如${10},${11},${12}...
两个值得注意的变量$*和$@, 表示所有的位置参数。


本文出自 “Mr_Z” 博客,请务必保留此出处http://zhangrong.blog.51cto.com/2196532/951356

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值