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







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值