linux用二维数组储存图片,shell 二维数组实现及使用实例

-------------------------------------------------------------------------

-使用实例(example.sh)----------------------------------------------------

-------------------------------------------------------------------------

#/bin/bash

set -u #你使用未初始化的变量时,让bash自动退出

set -e #任何一个语句返回非真的值,则退出bash

G_WORK_PATH=`pwd`

source $G_WORK_PATH/com_func.sh

G_TIME_FOR_PATH=`date '+20%y%m%d_%Hh'`

G_TIME=`date '+20%y%m%d_%Hh%Mm%Ss'`

G_StepINDEX=1

G_rpmbuild_PATH=~/rpmbuild

G_rpmbuild_SOURCES=$G_rpmbuild_PATH/SOURCES

G_rpmbuild_SPECT=$G_rpmbuild_PATH/SPECS

G_rpmbuild_RPMS=$G_rpmbuild_PATH/RPMS/x86_64

G_output_RPMS=$G_WORK_PATH/../rpms/

mkdir -p $G_output_RPMS

G_output_RequiresArrLen=0

G_output_RequiresArr=()

#jdk rpm包制作函数

function func_jdk_rpm_make()

{

tmpSOURCE="jdk-8u121-linux-x64.tar.gz"

tmpSPEC="jdk_8u121-linux-x64_forCR.spec"

#清空rpmbuild目录:先删除,再生成

rm -rf $G_rpmbuild_PATH

rpmdev-setuptree

#拷贝源文件和spec文件

cp -rf $G_WORK_PATH/sources/$tmpSOURCE

$G_rpmbuild_SOURCES/

cp -rf $G_WORK_PATH/specs/$tmpSPEC

$G_rpmbuild_SPECT/

#执行rpmbuild命令创建rpm包

cd $G_rpmbuild_PATH

rpmbuild -bb SPECS/$tmpSPEC

#将结果拷贝到rpms目录下

tmpResult=`ls $G_rpmbuild_RPMS`

mv $G_rpmbuild_RPMS/* $G_output_RPMS

echo ""

echo "Output=$tmpResult"

echo "" }

#cr_bigdataframe rpm包制作函数

function func_cr_bigdataframe_rpm_make()

{

tmpSOURCE=""

tmpSPEC="cr_bigdataframe.spec"

#清空rpmbuild目录:先删除,再生成

rm -rf $G_rpmbuild_PATH

rpmdev-setuptree

#拷贝源文件和spec文件

cp -rf $G_WORK_PATH/specs/$tmpSPEC

$G_rpmbuild_SPECT/

#执行rpmbuild命令创建rpm包

cd $G_rpmbuild_PATH

rpmbuild -bb SPECS/$tmpSPEC

#将结果拷贝到rpms目录下

tmpResult=`ls $G_rpmbuild_RPMS`

mv $G_rpmbuild_RPMS/* $G_output_RPMS

echo ""

echo "Output=$tmpResult"

echo ""

}

##脚本使用方法说明

function func_Usage()

{

tmpCMDArray=`func_2D_ArrayGetCloum 1

$G_SOURCE_CLOUM "${G_CmdRouterArray[@]}"`

echo "Usage"

echo " sudo

$1 all"

for element in ${tmpCMDArray[*]}; do

echo

" sudo $1 $element"

done

}

##显示依赖

function func_ShowRequires()

{

echo ""

for element in ${G_output_RequiresArr[*]};

do

echo "Requires:$element"

done

echo ""

}

#显示G_CmdRouterArray二维数组:func_2D_ArrayShow 2

"${G_CmdRouterArray[@]}" #获得所有的对应的处理函数: func_2D_ArrayGetCloum 2 $G_SOURCE_CLOUM

"${G_CmdRouterArray[@]}"

#获得jdk对应的处理函数: func_2D_ArrayCloumSelect 1 "jdk" 2 $G_SOURCE_CLOUM

"${G_CmdRouterArray[@]}"

G_SOURCE_CLOUM=2 G_CmdRouterArray=(

"jdk func_jdk_rpm_make "

"cr_bigdataframe

func_cr_bigdataframe_rpm_make "

)

#处理入口 set +u

G_ParaCMD="$1"

set -u

if [ "$G_ParaCMD" == "" ]; then #显示脚本用法

func_Usage $0

exit

elif [ "$G_ParaCMD" == "all" ]; then #制作所有的rpm

tmpCMDArray=`func_2D_ArrayGetCloum 2

$G_SOURCE_CLOUM "${G_CmdRouterArray[@]}"`

for element in ${tmpCMDArray[*]}; do

func_SetpInfo "Building rpm

while running $element"

$element

done

G_output_RequiresArr=`func_2D_ArrayGetCloum 1

$G_SOURCE_CLOUM "${G_CmdRouterArray[@]}"` else #制作制定的rpm

G_ParaCMD2Func=`func_2D_ArrayCloumSelect 1

"$G_ParaCMD" 2 $G_SOURCE_CLOUM "${G_CmdRouterArray[@]}"`

if [ "$G_ParaCMD2Func" != "" ]; then

func_SetpInfo "Building rpm

while running $G_ParaCMD2Func"

$G_ParaCMD2Func

G_output_RequiresArr[$G_output_RequiresArrLen]="$G_ParaCMD"

G_output_RequiresArrLen=$(($G_output_RequiresArrLen+1))

else

func_Usage $0

exit

fi

fi

##显示依赖

func_ShowRequires

-------------------------------------------------------------------------

-实现实例(example.sh)----------------------------------------------------

-------------------------------------------------------------------------

#/bin/bash

###创建BuildRun所需的目录结构

function func_rpmdev_setuptree()

{

tmp_rpmbuild_PATH=$1

mkdir -p $tmp_rpmbuild_PATH

cd $tmp_rpmbuild_PATH && mkdir -pv

{BUILD,BUILDROOT,RPMS,SOURCE,SOURCES,SPECS,SRPMS}

}

######################################################################################

###二维数组2D_Array相关操作:start####################################################

######################################################################################

##G_SOURCE_CLOUM=2 ##2D_Array=(

## "jdk func_jdk_rpm_make"

## "cr_bigdataframe func_cr_bigdataframe_rpm_make"

## ) ##func_2D_ArrayShow 2 "${2D_Array[@]}" ##

##

##对齐显示2D数组

##参数: $1--列数 $2--${2D_Array[@]}

##用法: func_2D_ArrayShow 2 "${2D_Array[@]}"

##

function func_2D_ArrayShow()

{

tmp_SOURCE_CLOUM=$1

tmp_KOWN_Para_counter=1

tmp_loop=0

###各列最大长度清零

cloum_index=0

while [ "$cloum_index" -lt

"$tmp_SOURCE_CLOUM" ]

do cloum_index=$(($cloum_index+1))

each_cloum_max_char_number[$cloum_index]=0

#echo

"each_cloum_max_char_number[$cloum_index]=${each_cloum_max_char_number[$cloum_index]}"

done

###获得每列的最大长度,为对齐做准备

tmp_loop=0

cloum_index=1

for tmpvar in $*

do

#如果tmp_loop小于1,说明是你一个参数(列数),跳过)

if [ "$tmp_loop" -lt

"$tmp_KOWN_Para_counter" ]; then

tmp_loop=$(($tmp_loop+1))

continue

fi

#获得每列的最大长度

countOfChar=`echo "$tmpvar" | wc -m`

if [ "${each_cloum_max_char_number[$cloum_index]}" -lt

"$countOfChar" ];then

each_cloum_max_char_number[$cloum_index]=$(($countOfChar))

fi if [ "$cloum_index" -eq "$tmp_SOURCE_CLOUM" ]; then

cloum_index=1

else

cloum_index=$(($cloum_index+1))

fi

done ###逐行显示

tmp_loop=0

cloum_index=1

tmpString=""

echo ""

for tmpvar in $*

do

#如果tmp_loop小于1,说明是你一个参数(列数),跳过)

if [ "$tmp_loop" -lt

"$tmp_KOWN_Para_counter" ]; then

tmp_loop=$(($tmp_loop+1))

continue

fi

tmpString+=" $cloum_index." tmpString+=$tmpvar countOfChar=`echo "$tmpvar" | wc

-m` while [ "$countOfChar" -lt

"${each_cloum_max_char_number[$cloum_index]}" ]

do

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值