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

相關文章
相關標籤/搜索