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

Shell学习笔记---变量赋值与运算

2013-11-03 20:08 381 查看
#!/bin/bash

#Filename:prameter_parctise2

#Datetime:2010_12_24 09:24

#Discription:Practise of evaluating parameters

# 等号赋值

a=879

echo "The value of \"a\" is $a."

# 使用'let'赋值

let a=16+5

echo "The value of \"a\" is now $a."

echo 'The value of \'a\' is now $a.'

# 在'for'循环中赋值(事实上, 这是一种伪赋值):

echo -n "Values of \"a\" in the loop are: "

#--------------------------------------------

for a in 7 8 9 11

do

echo -n "$a "

done

echo

#--------------------------------------------

#使用'read'命令进行赋值(这也是一种赋值的类型):

echo -n "Enter \"a:\" "

read a

echo "The value of \"a\" is now $a."

#--------------------------------------------

b=$a

echo $b

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

c=`echo Hello!` # 把'echo'命令的结果传给变量'a'

echo $c

c=`ls -l` # 把'ls -l'的结果赋值给'a'

echo $c #然而, 如果没有引号的话将会删除ls结果中多余的tab和换行符.

echo "$c" #如果加上引号的话, 那么就会保留ls结果中的空白符.

#命令替换也可以通过( )实现

R=$(cat /etc/redhat-release)

arch=$(uname -m)

echo $R; echo $arch

exit 0

进行浮点运算

#!/bin/bash

echo -n "Inpute a:"

read a

echo -n "Input b:"

read b

#计算a,b的乘积,包括浮点数

c=` "scale=3;$a*$b" | bc`

echo "c=$c"

exit 0

#!/bin/bash

#Filename:parameter_replacement.sh

#Datetime:2010_12_24 17:09

#Discription:Replace the parameter

myfruit="pear"

fruit=${myfruit:-apple} #对于“:-":如果myfruit变量被定义过且不为空,则不传入"apple"。否则传入

echo When myfruit is set ,fruit is :$fruit apple,该传是暂时的,非永久性

unset myfruit

fruit=${myfruit:-apple}

echo When myfruit is unset,fruit is :$fruit

unset var_x

echo When var_x is unset,var_x is :$var_x #对于":=",如果var_x变量未被定义过或为空,则将var_x赋值为"shala"。否则

echo Now var_x is: ${var_x:=shala} 将var_x变量将保留他原本的值。该赋值为永久性的,非暂时性的

echo Now var_x is: ${var_x:=banana}

unset var_x

echo ${var_x:+"aoyun beijing"} #对于":+",如果var_x变量未被定义或为空,则不传入"aoyun beijing"。如果

var_x="beijing 2008" var_x被定义过, 则传入"aoyun beijing",该传是暂时的,非永久性

echo ${var_x:+"aoyun beijing"}

echo var_x is:$var_x

exit 0

参考至:http://club.topsage.com/viewthread.php?tid=668357&highlight=shell

本文原创,转载请注明出处、作者

如有错误,欢迎指正

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