我有一个bash脚本" domain-ssl-status.sh"。我需要一个带有两个参数的脚本,以便我可以通过以下方式运行脚本:
./domain-ssl-status.sh cname.domain.com状态|未关注|获得|错误
domainname和状态是我的两个参数
domainname = $ 1和状态= $ 2
我尝试使用案例语句创建一个status_map,但没有运气!我也看到了其他提示,但我的似乎从来没有用。我的sql语句包括select * select * from domainssl,其中domainname ='cname.domain.com',我仍然卡住了。
重写 -
的粗糙通行证#!/bin/bash
domainName=$1
status=$2
echo "Verifying domain"
case status in
$status) ping -c 1 $domainName || {
echo "Cannot ping $domainName" >&2
exit 1
} ;;
*) echo "Invalid argument '$status'" >&2
exit 1 ;;
esac
sql="SELECT * FROM DomainSSL WHERE domainName='$domainName'"
mssql -f csv -c ~/applications/mssql/mssql.json -q "$sql" # mark here
rc=$?
if (( rc )) # nonzero
then echo "FAIL: rc $rc on [$sql]" >&2
else echo "SUCCESS: $sql"
fi
您可能还想尝试保存Stdout和stderr以进行以后的解析。从上面的# mark
重写
mssql -f csv -c ~/applications/mssql/mssql.json -q "$sql" >ok 2>oops
rc=$?
if (( rc )) # nonzero
then echo -e "FAIL: rc $rc on [$sql]:n$(<oops)" >&2
case "$(grep SQLSTATE oops)" in
*ER_DUP_KEY*) : code to handle duplicate keys error ;;
# any other errors you choose to handle . . .
*) : code for bailing on errors you don't care to handle ;;
esac
else echo "SUCCESS: $sql"
fi
c.f。MySQL文档
这只是一个通用模板。希望能帮助到你。随时要求澄清。