我有一个外壳程序脚本,并且在该脚本中正在使用一个sql。
例如:
Select * from Table where city IN ( ‘Pais’, ‘london’, ‘Sydney’)
我的疑问是,如果我想将N个参数传递给我的Shell脚本,以便所有参数都可以在IN子句中进行设置,那么该怎么做。
我可以知道如何实现吗? 在完成有限数量的参数的情况下,但这对我来说是新场景。
更新:
实际脚本
#! /bin/bash
echo ID, CITY, SALARY, ACCT_NUM, DATE, AMOUNT > /home/joy/Apple/SMMRY_RESULT.csv
m_db unload /home/joy/IPC/target/send/sendFile.dbc -column_delimeter ',' -select "Select * from Table where CITY IN ( ‘Paris’, ‘london’, ‘Sydney’);" >> /home/joy/Output/Output_RESULT.csv
var=$? --Line 1
echo ID, CITY, SALARY, ACCT_NUM, DATE, AMOUNT > /home/joy/Apple/SMMRY_RESULT.csv
m_db unload /home/joy/IPC/target/send/sendFile.dbc -column_delimeter ',' -select "Select * from Table where DATE IN ( ‘2019-02-01’, '2019-02-02,' '2019-02-03');" >> /home/joy/Output/Output_RESULT.csv
var1=$? -- Line 2
if [["$var"==0 $$ "$var1==="]];
echo "" | mailx -a "/home/joy/Output/Output_RESULT.csv" -a "
/home/joy/Output/Output_RESULT.csv" -s "IPC DATA Output" 'kellyIPC@outlook.com' >
/dev/null
then
echo "Script Success and Mail Sent"
exit 0
else
echo "Script Failed"
exit 1
fi
问题:
1)如何在运行时给一个参数(一次汇总所有日期或城市)以编写脚本,以便它可以通过,因为一个值包含所有日期或城市,其中所有值都用单引号引起来并用逗号分隔?
For example sh myScript.sh "AllDatesAsFirstParameter" "AllCitiesAsSecondParameter"
2)我如何用特定的模式限制我的日期参数否则显示错误?
我在下面尝试过的一个(仅作为示例)
#! /bin/bash
echo "My Value: $1"
echo "My Second Value: $2"
sh myScript.sh One Two
谢谢