您的位置:首页 > 运维架构 > Shell

[置顶] shell变量赋值-linux

2013-10-09 18:39 417 查看
Shell变量赋值
命名须规则:

1)使用变量无需事先声明
2)首个字符必须为字母(a-z,A-Z)
3)中间不能有空格,可以使用下划线(_)
4)不能使用标点符号
5)不能使用bash里的关键字(可用help命令查看保留关键字)
6)需要给变量赋值时,可以这么写:
7)变量名=值
8)取一个变量的值,只需在变量名前面加一个$ ( 注意: 给变量赋值的时候,不能在"="两边留空格 )



例1:(变量赋值)



#!/bin/sh

# 对变量赋值:

a="hello world" #等号两边均不能有空格存在

# 打印变量a的值:

echo "A is:" $a

挑个自己喜欢的编辑器,输入上述内容,并保存为文件first,然后执行 chmod +x first 使其可执行,最后输入./first 执行该脚本。

其输出结果如下:

"A is: hello world "



例2:(区别变量)



错误用法:




有时候变量名可能会和其它文字混淆,比如:




num=2




echo "this is the $numnd"




上述脚本并不会输出"this is the 2nd"而是"this is the";




这是由于shell会去搜索变量numnd的值,而实际上这个变量此时并没有值。





正确用法:




num=2




echo "this is the ${num}nd"




其输出结果为:




"this is the 2nd"




[




注意:
花括号的位置?





num=2





echo "this is the {$num}nd"





其输出结果为:this is the {2}nd





]



例3:(变量值作为数字)



需要注意shell的默认赋值是字符串赋值。

错误方式:




var=1




var=$var+1




echo $var




打印出来的不是2而是1+1。





正确方式:




1)let "var+=1"




2)var=$[$var+1]




3)var=`expr $var +1`#注意加号两边的空格,否则还是按照字符串的方式赋值。[暂时无效]




echo $var 打印出来是2

注意:前两种方式在bash下有效,在sh下会出错。[注意:我的虚拟机中:/bin/sh->/bin/bash]

let表示数学运算;

$[]将中括号内的表达式作为数学运算先计算结果再输出;

expr用于整数值运算,每一项用空格隔开;[暂时无效]

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: