shell編程(一)

shell編程在系統管理與維護中扮演着重要的角色,從現在將學習shell的一些知識記錄下來,便於日後的複習。

一:變量

變量對於任何編程語言都是不可缺少的,shell也不例外。它用於存放各類數據。對於shell不用在使用變量前聲明其類型,直接賦值即可。在bash中,每個變量的值都是字符串。

一個變量可以通過以下方式進行賦值:

var=gdf

注意:var=gdf 與 var = gdf是不同的。把var=gdf寫成var = gdf是一個常見的錯誤。前者表示賦值,後者表示相等。

在變量前加上$就可以打印出變量的內容

echo $var
或者

echo ${var}

我們同樣可以使用printf來輸出變量的內容。

#!/bin/bash
#####################################
#
#       Date:   2013-5-3
#
#####################################

echo 'gdf'
printf "gdf is a man\n"
var=Hello
echo $var
echo ${var}
補充內容:

1:獲得字符串長度

可以用下面的方法獲得變量值得長度:

echo ${#var}

2:UID環境變量

UID是一個重要的環境變量,可以用於檢測執行當前腳本的用戶是否是root

#!/bin/bash
#####################################
#
#       Date:   2013-5-3
#
#####################################

#check root
if [ $UID -ne 0 ];
then
        echo 'non root user,Please run as root'
else
        echo "root user"
fi

二:數組和關聯數組

bash同時支持普通數組和關聯數組。普通數組只能使用整數做爲數組索引,而關聯數組可以使用字符串作爲數組索引。

1:普通數組

定義數組的方法有很多種。

#!/bin/bash
#########################################
#
#       Array
#
#########################################
#定義數組
array_var[0]=love
array_var[1]=love
array_var[2]=love
array_var[3]=love
#按索引輸出數組的值
echo ${array_var[0]}
#輸出所有值
echo ${array_var[*]}
echo ${array_var[@]}
#輸出數組的長度
echo ${#array_var[*]}
2:關聯數組

關聯數組從bash 4.0開始被引入,藉助散列技術,它成爲解決很多問題的有力工具。

[oracle@edhatGRA test]$ bash -version
GNU bash, version 4.1.2(1)-release (i386-redhat-linux-gnu)
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
[oracle@edhatGRA test]$ 

定義關聯數組

首先,需要使用單獨的聲明語句將一個變量名聲明爲關聯數組。如下:

declare -A gdf

聲明以後,就可以將元素加到關聯數組中。

gdf[love]=love







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章