问题描述
// #pet_kind can be "Canina" or "Felina"
$('#pet_kind').change(() => {
$('#div-breed').css("display","none");
if ($('#pet_kind').val() === 'Canina') {
$("#pet-breed").html(
`<% breed_canina.each do |canineBreed| %>
<option value="<%= canineBreed.name %>"></option>
<% end %>`
);
$('#div-breed').css("display","block");
} else if ($('#pet_kind').val() === 'Felina') {
$("#pet-breed").html(`
<% breed_felina.each do |felineBreed| %>
<option value=\"<%= felineBreed.name %>\"></option>
<% end %>
`);
$('#div-breed').css("display","block");
}
});
此脚本用于检查数据库是启动还是关闭。起床时,我得到以下结果。
#!/bin/sh
set -e
export DATABASE=U414_157_6300/U414_157_6300@db1230cn:1526/DBG192
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export JAVA_HOME=/u01/app/java/jdk180_231
export ORACLE_HOME=/u01/app/oracle/client19
export LD_LIBRARY_PATH=/u01/app/oracle/client19/lib
export PATH=$ORACLE_HOME/bin:$PATH
PATH=$PATH:$HOME/bin
export PATH
echo "exit" |sqlplus -L $DATABASE | grep 'Connected' > /dev/null
if [ $? -eq 0 ]
then
echo "Database is up and the connection is successful!!"
exit 0;
else
echo "Database seems to be down!!"
exit 1;
fi
但是,当DB关闭时,我什么也没得到!为什么?
./db_status.sh
Database is up and the connection is successful!!
解决方法
因为脚本开头有set -e
。如果任何命令的退出代码为非零,则脚本将立即退出。因此,当grep
失败时,脚本将立即退出,并且您从不测试下一行的$?
。
但是有例外:如果命令在if
中用作测试,则脚本不会退出。因此,无需测试$?
,只需测试命令本身即可。
if echo "exit" |sqlplus -L $DATABASE | grep -q 'Connected'
then
echo "Database is up and the connection is successful!!"
exit 0;
else
echo "Database seems to be down!!"
exit 1;
fi