天天看點

Shell學習筆記---變量指派與運算(原創)

聲明:本文僅作學習研究使用,多數語句都是為了介紹文法而構造的。 

#!/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 

進行浮點運算 

echo -n "inpute a:"

echo -n "input b:"

read b 

#計算a,b的乘積,包括浮點數 

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

echo "c=$c"

exit 0

#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  

本文原創,轉載請注明出處、作者

如有錯誤,歡迎指正

郵箱:[email protected] 

作者:czmmiao 原文位址:http://czmmiao.iteye.com/blog/911373