20道shell编程面试题-中

匿名 (未验证) 提交于 2019-12-02 23:34:01

#!/bin/bash # chkconfig: 2345 64 36 # description: A very fast and reliable SQL database engine basedir='/usr/local/mysql' bindir='/usr/local/mysql/bin' pidfile='/data/mysql/data/mysql.pid' [ -f /etc/init.d/functions ] && . /etc/init.d/functions judge(){   RETVAL=$?   if [ $RETVAL -eq 0 ];then     action "$1 mysql" /bin/true   else     action "$1 mysql" /bin/false   fi   return $RETVAL } # start函数中注意:输出到空以及后台运行 start(){   if [ ! -f $pidfile ];then     $bindir/mysqld_safe --defaults-file=$basedir/my.cnf &>/dev/null &     judge start   else     action "MySQL is running" /bin/true   fi } stop(){   if [ -f $pidfile ];then     $bindir/mysqladmin -uroot -poldboy123456  shutdown &>/dev/null     judge stop   else     action "MySQL is not running" /bin/false   fi } stop2(){   if [ -f $pidfile ];then     mysqld_pid=`cat "$pidfile"`     # 判断mysql pid对应的进程是否存在     if (kill -0 $mysqld_pid 2>/dev/null);then       echo $"Shutting down MySQL"       kill $mysqld_pid       judge stop     else       action "MySQL is not running" /bin/false     fi   else     action "MySQL is not running" /bin/false   fi } case "$1" in   start)     start     ;;   stop)     stop2     ;;   restart)     stop2     sleep 2     start     ;;   *)     echo "USAGE:$0 {start|stop|restart}"     exit $RETVAL esac 

1)Starting MySQL........

ERROR! The server quit without updating PID file (/data/mysql/data/mysql.pid)

cat hehe.conf [client] port = 3306 socket = /usr/local/mysql/var/mysql.sock user=root password=oldboy123456  /usr/local/mysql/bin/mysqladmin --defaults-file=/server/scripts/hehe.conf shutdown 

#!/bin/bash BAKPATH=/server/backup MYUSER=root MYPASS=oldboy123456 SOCKET=/usr/local/mysql/var/mysql.sock MYCMD="mysql -u$MYUSER -p$MYPASS -S $SOCKET" MYDUMP="mysqldump -u$MYUSER -p$MYPASS -S $SOCKET -x -B -F -R" [ ! -d $BAKPATH ] && mkdir -p $BAKPATH DBLIST=`$MYCMD -e 'show databases;'|sed 1d|egrep -v 'schema|test'` for dbname in $DBLIST do   $MYDUMP $dbname|gzip > /server/backup/${dbname}_$(date +%F).sql.gz done 

Warning: Using a password on the command line interface can be insecure

# 把账号密码写到配置文件中 vim /usr/local/mysql/my.cnf [mysqldump] user=root password=oldboy123456 # 如何使用(不指定文件会报错): mysqldump --defaults-extra-file=/usr/local/mysql/my.cnf mysql > hehe.sql 

#!/bin/bash BAKPATH=/server/backup MYUSER=root MYPASS=oldboy123456 SOCKET=/usr/local/mysql/var/mysql.sock MYCMD="mysql -u$MYUSER -p$MYPASS -S $SOCKET" MYDUMP="mysqldump -u$MYUSER -p$MYPASS -S $SOCKET -x -F -R" [ ! -d $BAKPATH ] && mkdir -p $BAKPATH DBLIST=`$MYCMD -e 'show databases;'|sed 1d|egrep -v 'schema|test'` for dbname in $DBLIST do   mkdir -p $BAKPATH/$dbname   TLIST=`$MYCMD -e 'show tables from $dbname;'|sed 1d`   for tname in $TLIST   do     $MYDUMP $dbname $tname|gzip > $BAKPATH/$dbname/${tname}_$(date +%F).sql.gz   done done 

I am oldboy teacher welcome to oldboy training class.

#!/bin/bash for word in I am oldboy teacher welcome to oldboy training class. do   if [ ${#word} -le 6 ];then     echo -e "$word \t ${#word}"   fi done  #!/bin/bash array=(I am oldboy teacher welcome to oldboy training class.) for word in ${array[*]} do   if [ ${#word} -le 6 ];then     echo -e "$word \t ${#word}"   fi done  echo "I am oldboy teacher welcome to oldboy training class." \ |tr " " "\n"|awk '{if(length($1)<=6) print $1}' 

#!/bin/bash read -p "Pls input two number: " ARG1 ARG2 echo $ARG1 echo $ARG2 if [ ${#ARG1} = 0 -o ${#ARG2} = 0 ];then   echo "number is not allowed empty"   exit 1 fi expr $ARG1 + 1 >/dev/null 2>&1 RETVAL1=$? expr $ARG2 + 1 >/dev/null 2>&1 RETVAL2=$? if [ $RETVAL1 -ne 0 -o $RETVAL2 -ne 0 ];then   echo "number must be int"   exit 2 fi if [ $ARG1 -lt $ARG2 ];then   echo "$ARG1 < $ARG2"   exit elif [ $ARG1 -eq $ARG2 ];then   echo "$ARG1 = $ARG2"   exit else   echo "$ARG1 > $ARG2"   exit fi 

#!/bin/bash menu(){ cat<<EOF     1.[install lamp]     2.[install lnmp]     3.[exit]     echo "pls input num: " EOF } menu read num lamp="/server/scripts/install_lamp.sh" lnmp="/server/scripts/install_lnmp.sh"  [ $num -eq 1 ] && {     [ -x "$lamp" ] || { echo "$lamp can't be exec";exit 1; }     echo "start installing lamp"     $lamp     exit 0  } [ $num -eq 2 ] && {     [ -x "$lnmp" ] || { echo "$lnmp can't be exec";exit 1; }     echo "start installing lnmp"     $b     exit 0  } [ $num -eq 3 ] && {     echo "you choice quit!"     exit 0 } echo "input error";exit 1 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!