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

Linux脚本使用记录

2017-09-06 14:39 246 查看
Linux shell脚本编写 
1、map的使用
     定义空map:

declare -A map=()  
     定义带值的map :
declare -A map=(["100"]="1" ["200"]="2")  
    map,key和value的添加

map["c"]="3"  
    输出所有key

echo ${!map[@]}  
   输出所有value

echo ${map[@]}
  map的循环遍历
for key in ${!map[@]}  
do  
    echo ${map[$key]}  
done  
    map的清除
unset map
    数组的定义:
      定义空数组:
   array=()

 定义有值的数组:
   array=(value0 value1 value2 value3 ...)

添加数组的值
  array[0]=value0全部获取:
    echo ${array[@]}取得数组元素的个数:
   length=${#array[@]}循环:同map   for value in ${array[*]} ;   do
    echo $value
  done查询oracle直接可以给数组赋值,但是不能给map赋值
2、查询某张表是否存在   ,不存在则创建(如果要指定用户下,需要加用户名 and  owner = 'USER_NAME' )
tab=`sqlplus -s querydep/querydeptwo <<EOF
set heading off;
set feedback off;
set pagesize 0;
set verify off;
set echo off;
select count(*) from user_tables where table_name = 'BS_BATCHNO';
exit;
EOF`
##不存在则创建表
if [ $tab -eq 0 ]
then
echo "NOT EXISTS"
sqlplus -s querydep/querydeptwo <<EOF
set heading off;
set feedback off;
set pagesize 0;
set verify off;
set echo off;
create table BS_BatchNo(
BatchNo varchar2(20) not null,
TransactionNo varchar2(24) not null
);
exit;
EOF;
fi;3、关于各种结构化编程命令if then else fi                                                                                                                                                                
if then elif then else fi
if
命令
then
if中的命令执行成功,返回状态码为0执行then里面的命令或语句
else
if 执行不成功,执行else里面的内容
fi
if的条件可以用[]括起来,在[]中可以比对字符串,数值,文本例如:数值比较
-eq(=),-le(<=),-ge(>=),-lt(<),-gt(>),-ne(!=).小例子:
[html] view plain copyva1=14  
va2=15  
if[$va1 -eq $va2]  
then   
echo the values are equal  
else  
echo the values are different  
fi 

[]中也可以做字符串的比较 = ,!= ,<,>, -n(长度非0),-z(长度为0)[]文件比较 -d (是不是目录),-e文件是否存在,-f 是否是同一个文件 -s (文件是否存在并非空) -nt ,-ot(比较文件的新旧)
[条件1]和[条件2]也可以用&& ,||组合
也可以用case 参数 in 。。。。。esac 代替if  。。。fi
数值比较,注意不能比较浮点型
循环:while循环退出循环:同Java break 命令不执行当前循环体内break下面的语句从当前循环退出. 
 continue 命令是程序在本循体内忽略下面的语句,从循环头开始执行
   while [判断  ]
do  操作done   num++自增的写法:num=`expr $num + 1`;   小例子:     value =1000000000000;
     num=8000000001;
    while[$i*1000000 -lt $value]
     do
       pc="000100LHIS"$num;
        num=`expr $num + 1`;
       echo $pc
    donefor循环  数组的循环展示已使用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: