shell命令之read、case使用

Read能够带有-a, -d, -e, -n, -p, -r, -t, 和 -s八个选项。bash

-d :表示delimiter,即定界符,通常状况下是以IFS为参数的间隔,可是经过-d,咱们能够定义一直读到出现执行的字符位置。例如read –d madfds value,读到有m的字符的时候就不在继续向后读,例如输入为 hello m,有效值为“hello”,请注意m前面的空格等会被删除。这种方式能够输入多个字符串,例如定义“.”做为结符号等等。app

-e :只用于互相交互的脚本,它将readline用于收集输入行。读到这几句话不太明白什么意思,先跳过。spa

-n :用于限定最多能够有多少字符能够做为有效读入。例如echo –n 4 value1 value2,若是咱们试图输入12 34,则只有前面有效的12 3,做为输入,实际上在你输入第4个字符‘3’后,就自动结束输入。这里结果是value为12,value2为3。rest

-p :用于给出提示符,在前面的例子中咱们使用了echo –n “…“来给出提示符,能够使用read –p ‘… my promt?’value的方式只需一个语句来表示。进程

-r :在参数输入中,咱们能够使用’/’表示没有输入完,换行继续输入,若是咱们须要行最后的’/’做为有效的字符,能够经过-r来进行。此外在输入字符中,咱们但愿/n这类特殊字符生效,也应采用-r选项。ip

-s :对于一些特殊的符号,例如箭头号,不将他们在terminal上打印,例如read –s key,咱们按光标,在回车以后,若是咱们要求显示,即echo,光标向上,若是不使用-s,在输入的时候,输入处显示^[[A,即在terminal上 打印,以后若是要求echo,光标会上移。字符串

-t :用于表示等待输入的时间,单位为秒,等待时间超过,将继续执行后面的脚本,注意不做为null输入,参数将保留原有的值terminal

交互式的echo 和read使用:it

   方式一:经过echo,获取控制台输入的值:io

    #!/bin/bash
    echo  -n "please enter your name"  //参数-n的做用是不换行,echo默认是换行
    read name
    echo $name

    方式二:

#!/bin/bash
Passwd="please Enter Your Password:"
read -p "$Passwd" -s passwd
echo "passwd is"$passwd

制做一个可start stop 查看status进程

#!/bin/bash
#chkconfig: 2345 99 99
#description: start app-process
###
start()
{
nohup $(which app-process) > /dev/nul 2>>/var/log/app-process.log &
}
stop()
{
  pkill -9 app-process
}
status()
{
ps x | grep "app-process" | grep -v grep > /dev/nul && echo "app-process is running" || echo "cloud_agent is stopped"
}
usage()
{
  echo "/etc/init.d/app-process [start|stop|restart|status]"
}

restart()
{
stop
sleep 0.03
start
}

case "$1" in
    stop) stop ;;
    status) status ;;
    start) start ;;
    restart) restart;;
    *) usage ;;
esac

相关文章
相关标签/搜索