shell变量赋值-linux
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用于整数值运算,每一项用空格隔开;[暂时无效]
补充:综合编程 , 其他综合 ,