执行SHELL脚本,传入参数,参数应该被里边的sql所用,请问怎么写

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了执行SHELL脚本,传入参数,参数应该被里边的sql所用,请问怎么写相关的知识,希望对你有一定的参考价值。

比如 执行 upload.sh XXXXXX XXXXX是传入参数
怎么在下列脚本中传入参数 被*******(一条SQL语句)所用
脚本
sqlplus -s ac/ca@ca<<EOF
set head off;
set feedback off;
set linesize 5000;
set newpage none;
set trims on;
set term off;
set array 5000;
spool etl_inc_de_007009.txt;
****************
spool off;
EOF
这个问题还得补充下,传入-1 生成一个SQL文件 SQL内容
select dept_id,dept_name from department
解析以上文件 根据dept_id,dept_name 做条件和查询列,和另个一个表income,和一起
生成一个明晰的SQL ,执行这个SQL文件,进行导出

参考技术A 变量在sh中用$1,$2,$3... 顺序表示传入的参数。
sql写法:
select dept_id,dept_name from department
where dept_id=$1
参考技术B echo "please input var_name:"
while read var_name
参考技术C 上边的脚本是在shell中,还是单独一个SQL文件啊追问

都行,我就是想做一个SHELL脚本,输入-1 查询一个表比如A,生成一行一行的数据形成的文件,(2)然后解析这个文件,她的数据用做条件和别的SQL生成一个新的SQL文件,然后用这个SQL
进行数据导出

追答

在shell中的话,举个例子吧
if [ “$1” = "-1" ]; then
SQL="select * from t_a where c_a='test';"
fi
。。。
spool etl_inc_de_007009.txt;
$SQL
spool off;
。。。
这样就可以了。以上是在KSHELL下执行的code
不知道是不是你要的情况

本回答被提问者采纳

shell脚本之判断文本类型2 (参数传入脚本)

技术图片

#!/bin/bash
if [ "$#" -lt 1 ]; then                                    #判断脚本参数个数,当参数个数小于1时,给出脚本执行方式
        echo "Usage:./judge_file_arg.sh ARG1 [ARG2...]"
        exit 2                                                  #定义错误退出码
fi
if [ ! -e "$1" ]; then                                     #判断给出的文件是否存在,不存在推出脚本
        echo "no such file"
        exit 3
fi
if [ -f "$1" ]; then                                       #判断文件是否为普通文本
        echo "This is normal file"
elif [ -d "$1" ]; then                                   #判断是否为目录
        echo "This  is directory"                               
else
        echo "This  is other type file"
fi

以上是关于执行SHELL脚本,传入参数,参数应该被里边的sql所用,请问怎么写的主要内容,如果未能解决你的问题,请参考以下文章

spark-shell 执行脚本并传入参数

linux shell 脚本中几个特殊参数含义

如何在shell中执行一个模块,这个模块需要传入参数

如何给shell脚本传参数

shell脚本变量$#,$*,$$,$@,$0,$1,$2,$?的含义

shell脚本之判断文本类型2 (参数传入脚本)