Shell 编程注意点

(一)判断语句

[$# -lt 4 ]判断语句,格式[空格 比较对象1 比较符号 比较对象2]

$# 启动脚本时携带参数个数;参数个数总数。

$1 代表第一个参数。

$? 最后一次执行名命令的退出状态,0成功,非0失败。

-eq 等于;-ne 不等于;-gt 大于;-ge 大于等于; -lt 小于; -le 小于等于;

数值比较 if [ “$1”  -eq “$2” ],其他比较不需要””引号。

exit 0 正常退出。exit 1 异常退出,终止程序退出。

(二) 判断参数

if [ ! -d $1 ] 判断目录是否不存在

-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

上一篇:项目管理知识体系指南(PMBOOK指南)(第5版) 阅读摘要


下一篇:Python并发编程系列之多线程