質問
、スクリプトを書くのMySQLサービス123456の現在のrootパスワードという仮定は、(たとえば、あなたが通常の実行mysqlのショーPROCESSLISTを入力することができます)MySQLサービスは正常であることを検出し、
そして、それはからのものである場合、サービスは、現在メインMySQLやから何であるかを検出し、その主なサービスからの例外かどうかを確認してください。それは主であるならば、あなたは何もする必要はありません。
回答
#!/bin/bash
mysql="/usr/local/mysql/bin/mysql -uroot -p123456"
if ! $mysql -e "show processlist" >/dev/null 2>/dev/null
then
echo "MySQL service is down."
exit
else
$mysql -e "show slave status\G" 2>/dev/null >/tmp/slave.stat
n=`wc -l /tmp/slave.stat|awk '{print $1}'`
if [ $n -eq 0 ]
then
echo "This is master."
else
echo "This is slave."
#找出Slave_IO_Running和Slave_SQL_Running是yes 还是no
egrep 'Slave_IO_Running:|Slave_SQL_Running:'/tmp/slave.stat|awk -F ': ' '{print $2}' > /tmp/SQL.tmp
#如果为no则down掉了
if grep -qw "No" /tmp/SQL.tmp
then
echo "The slave is down."
fi
fi
fi
質問
オプションの増加をサポートするか、次のように、ユーザの特定の要件がある削除するシェルスクリプトを書きます:
- 「 - デル」、 - 、「を追加」「 - ヘルプ」、入力の他のオプションのエラー:唯一の3つのオプションをサポートしています。
- 「--add」を使用する場合は、ユーザー名が存在を確認する必要があり、フィードバックの存在があり、それが追加されませんでした。それは存在しない、ユーザーを作成し、同じユーザー名とパスワードを使用する必要があります。
- 「--del」を使用する場合は、確認する必要があり、ユーザ名が存在し、それがユーザーとそのホームディレクトリを削除して存在しています。それが存在しない場合、ユーザーからのフィードバックは存在しません。
- --helpオプションは、フィードバック方法を使用することです。
- 成功は0、失敗したゼロ以外の正の整数として、ユーザーを追加または削除、エコー$?検出スクリプトの実装を使用します。
- コンマは一回で複数のユーザーを追加または削除、分割することができます。例adddel.sh --addユーザー1、ユーザー2、ユーザー3用
回答
#!/bin/baash
#判断参数,零个参数或者大于两个参数,将要报错退出
if [ $# -eq 0 ] || [ $# -gt 2 ]
then
echo "Wrong, use bash $0 --add username, or bash $0 --del username or bash $0 --help"
exit
fi
#useradd用户函数
ex_user()
{
if ! id $1 2>/dev/null >/dev/null
then
useradd $1 && echo "$1 add successful."
else
echo $1 exist.
fi
}
#删除用户
notex_user()
{
if id $1 2>/dev/null >/dev/null
then
userdel $1 && echo "$1 delete successful."
else
echo $1 not exist.
fi
}
case $1 in
--add)
if [ $# -eq 1 ] //参数为1 直接报错退出
then
echo "Wrong, use bash $0 --add user or bash $0 --add user1,user2,user3..."
exit
else
n=`echo $2| awk -F ',' '{print NF}'` //用户个数
#用户个数大于1的,需要轮询下,创建,等于1的直接创建
if [ $n -gt 1 ]
then
for i in `seq 1 $n`
do
username=`echo $2 |awk -v j=$i -F ',' '{print $j}'`
ex_user $username
done
else
ex_user $2
fi
fi
;;
--del)
if [ $# -eq 1 ] //参数为1 直接报错退出
then
echo "Wrong, use bash $0 --del user or bash $0 --del user1,user2,user3..."
exit
else
n=`echo $2| awk -F ',' '{print NF}'` //用户个数
#用户个数大于1的,需要处理下创建,个数为1的直接删除
if [ $n -gt 1 ]
then
for i in `seq 1 $n`
do
username=`echo $2 |awk -v j=$i -F ',' '{print $j}'`
notex_user $username
done
else
notex_user $2
fi
fi
;;
--help)
if [ $# -ne 1 ] //参数为1直接报错退出
then
echo "Wrong, use bash $0 --help"
exit
else
echo "Use bash $0 --add username or bash $0 --add user1,user2,user3... add user."
echo " bash $0 --del username -r bash $0 --del user1,user2,user3... delete user."
echo " bash $0 --help print this info."
fi
;;
*) //其他情况,直接报错 告知情况
echo "Wrong, use bash $0 --add username, or bash $0 --del username or bash $0 --help"
;;
esac
質問
3で割り切れる100の正の整数内で計算することができますすべて:スクリプトを書きます
回答
#!/bin/bash
sum=0
for i in `seq 1 100`
do
j=$[$i%3]
if [ $j -eq 0 ]
then
sum=$[$sum+$i]
fi
done
echo $sum
質問
算術関数を達成するためのスクリプトを記述するためにパラメータを渡す方法を使用します。
たとえば、次のSH a.sh 1 2は、加算、減算、乗算、加算結果を計算します。
要件:
- 判断するためのスクリプトを、供給された2つの数字は整数でなければなりません
- 減算又は除算を行う場合と、縮小多数は、デジタル・サブトラクションを多数必要が判断する必要がある多数で必要とされる時分割小さな数で分割され、その結果、必要性は、二つの小数点を保持します。
回答
#!/bin/bash
is_nu()
{
n=`echo $1 |sed 's/[0-9]//g'`
if [ -n "$n" ]
then
echo "给出的参数必须是正整数"
exit
fi
}
if [ $# -ne 2 ]
then
echo "必须要输入两个参数"
exit
else
is_nu $1
is_nu $2
fi
big()
{
if [ $1 -gt $2 ]
then
echo $1
else
echo $2
fi
}
small()
{
if [ $1 -lt $2 ]
then
echo $1
else
echo $2
fi
}
add()
{
sum=$[$1+$2]
echo "$1+$2=$sum"
}
jian()
{
b=`big $1 $2`
s=`small $1 $2`
cha=$[$b-$s]
echo "$b-$s=$cha"
}
cheng()
{
ji=$[$1*$2]
echo "$1x$2=$ji"
}
chu()
{
b=`big $1 $2`
s=`small $1 $2`
v=`echo "scale=2;$b/$s"|bc`
echo "$b/$s=$v"
}
add $1 $2
jian $1 $2
cheng $1 $2
chu $1 $2
質問
実行後、スクリプトを書く、ラインを印刷する「を入力してください番号:」促し、値を入力するようにユーザを必要とし、その値をプリントアウトし、再度値を入力する必要があります。ユーザーが入力するまで、「終わり」ストップ。
回答
#!/bin/bash
while :
do
read -p "Please input a number: " n
if [ -z "$n" ]
then
echo "请输入一个纯数字."
continue
fi
if echo $n |grep -qi 'end'
then
exit
fi
n1=`echo $n|sed 's/[0-9]//g'`
if [ -n "$n1" ]
then
echo "请输入一个纯数字."
continue
else
echo "你输入的数字是: $n"
continue
fi
done