一些shell脚本
Talk is cheap, show me the code!
don’t tested.
** 1 **
#!/bin/bash
a=2009
let "a+=1"
echo "a=$a"
b = xx09
echo "b=$b"
declare -i b ##declare b as a integer
echo "b=$b"
let "b+=1" ## b equal 1, when b is declared a integer it becomes 0.
echo "b=$b"
exit 0
result:
a=2010
b=xx09
b=xx09
b=1
** 2 **
shell 有两种类型,字符,整型数字
字符默认是 空 “”
数字默认是 0
#!/bin/bash
c=""
echo "c=$c"
let "c+=1"
echo "c=$c"
echo "e=$e"
let "e+=1"
echo "e=$e"
ecit
result:
c=
c=1
e=
e=1
** 3 **
shell变量一般是无类型的,但是bash shell提供了declare和typeset两个命令来制定变量的类型,这两个命令完全等价。
declare [选项] 变量
-r 声明为只读变量
-i 声明为整形变量
-a 将变量声明为数组
-f 显示此脚本前定义的所有函数名及其内容
-F 仅显示此脚本前定义过的所有函数名
-x 将变量声明为环境变量
eg
#!/bin/bash
var1=2012
var2=$var1+1 #no declared£¬ so it's string.
echo "var2=$var2"
let "var3=$var1+1" # let functioned.
echo "var3=$var3"
declare -i var4 #declare as a integer
var4=$var1+1
echo "var4=$var4"
output:
var2=2012+1
var3=2013
var4=2013
#!/bin/bash
## let equal to (())
var1=9
var2=10
var3=$((var1*var2)) # equal as (($var1*$var2))
echo $var3
** 4 **
环境变量
ENVIRON-VARIABLE=value #环境变量赋值
export ENVIRON-VARIABLE #声明环境变量
消除环境变量是unset
env可以列出已经定义的环境变量
pwd是当前的目录路径
OLDPWD是旧的工作目录