(一)判断语句sql
[$# -lt 4 ]判断语句,格式[空格 比较对象1 比较符号 比较对象2]数据库
$# 启动脚本时携带参数个数;参数个数总数。spa
$1 表明第一个参数。对象
$? 最后一次执行名命令的退出状态,0成功,非0失败。get
-eq 等于;-ne 不等于;-gt 大于;-ge 大于等于; -lt 小于; -le 小于等于;it
数值比较 if [ “$1” -eq “$2” ],其余比较不须要””引号。awk
exit 0 正常退出。exit 1 异常退出,终止程序退出。变量
(二) 判断参数ftp
if [ ! -d $1 ] 判断目录是否不存在date
-e 存在文件。 -d 目录。-L 符号连接。
-r 可读。 -w 可写。 -x可执行。
-f 常规文件。 -s 文件长度不为0。-h 软连接。
文件1 -nt 文件2 若是文件1比文件2新,则为真。
文件1 -ot 文件2 若是文件1比文件2旧,则为真。
if [ -z “$pid” ] 判断变量的值是否为空。zero=0 为空返回0,为true。这个例子为单对括号,变量须要加双引号。
if [[ -z $pid ]] 双对括号变量不须要加双引号。
if [ -n “$pid” ] 判断变量的值是否为空。name=0 非空返回0,为true.为空返回1,为false。这个例子为单对括号,变量须要加双引号。
if [[ -n $pid ]] 双对括号变量不须要加双引号。
(三)sqlplus 结束符号
sqlplus 用户名/密码@数据库名 <<!或者sqlplus 用户名/密码@数据库名 <<EOF
EOF是end of file 缩写。
sql语句结束后须要加!或者EOF.
(四)ftp用法
open $hostaddr
user $username $userpassword
cd /etl/date
binary
mget $grepstr*
mdel $grepstr*
put $1
close
by
!
(五)while read line用法。 \为键盘左上方顿号,1旁边。
while read line
do
tbname=\echo $line | awk | -F’,’ ‘{print $1}’\
tbspace=\echo $line | awk | -F’,’ ‘{print $2}’\
echo $tbname
echo $tbspace
sh xxxx
done < t.ini
t.ini文件以下
T1,F1,1
T2,F2,1
(六) for 用法
for((i=1;i<=$1;i++)); do
echo “$i”
sqlplus $DB<<EOF&
@/etl/$2.sql $i
(七)export 设置或显示环境变量
export JAVA_HOME=/etl/bin