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
-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循环 数组的循环展示已使用
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里面的内容 fiif的条件可以用[]括起来,在[]中可以比对字符串,数值,文本例如:数值比较
-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循环 数组的循环展示已使用
相关文章推荐
- linux系统使用记录(1)
- linux 脚本-学习记录
- AIX和Linux使用差异记录
- linux下监控磁盘使用空间的脚本
- Linux命令的一些记录(四):rpm命令的一些使用
- 记录登录后使用命令的脚本
- 记录登录后使用命令的脚本
- 在Linux下使用script命令记录数据库操作
- 制作Linux下程序安装包——使用脚本打包bin、run等安装包
- Linux下使用Shell脚本改变当前工作路径
- Linux命令使用记录
- linux下使用脚本启动和关闭oracle
- [记录]在Linux中Oracle安装成功后,首次启动使用时,会出现的一些问题总结和解决办法
- 博主对Oracle对象追加属性,更改构造函数,继承方面的脚本使用记录.
- 使用PHP脚本修改Linux和Unix的系统口令
- 在linux下定时执行PHP脚本(定时执行crontab使用方法详解)
- 使用Linux的syslog记录cisco设备日志
- linux使用记录
- 网络游戏服务器开发:脚本系统的制作,linux下使用tolua制作Lua脚本系统(不需要PKG文件)
- 使用Linux的Shell脚本维护Oracle