Linux脚本启动,停止,重启

Erm*_*rma 1 linux

任何人都可以告诉我这个脚本究竟是做什么的?

#! /bin/sh
test –f /usr/bin/sshd || exit 0
case “$1” in
    start)
            echo –n “Starting sshd: sshd”
            /usr/sbin/sshd
            echo “.”
            ;;
   stop) 
          echo –n “Stopping sshd: sshd”
          kill `cat /var/run/sshd.pid`
          echo “.”
           ;;
   restart)
          echo –n “Stopping sshd: sshd”
          kill `cat /var/run/sshd.pid`
          echo “.”
          echo –n “Starting sshd: sshd”
            /usr/sbin/sshd
            echo “.”
            ;;
        *)
          echo “Usage: /etc/init.d/sshd start|stop|restart”
          exit 1
          ;;
    esac
Run Code Online (Sandbox Code Playgroud)

我想知道这部分到底是什么:

#! /bin/sh
test –f /usr/bin/sshd || exit 0
case “$1” in
    start)
            echo –n “Starting sshd: sshd”
            /usr/sbin/sshd
            echo “.”
            ;;
Run Code Online (Sandbox Code Playgroud)

是因为其他部分是一样的!请 ;)

Can*_*ice 9

哪个部分是一样的?脚本的工作方式是检查值$1,该值是命令行提供的脚本的第一个参数.如果它是'start',则start)执行后面的部分.如果它'停止',则stop)执行后面的部分.如果是"重启",则restart)执行后续部分.

第一部分逐行:

#! /bin/sh
Run Code Online (Sandbox Code Playgroud)

嘿,这是一个shell脚本!具体来说,使用shshell 执行此脚本.

test –f /usr/bin/sshd || exit 0
Run Code Online (Sandbox Code Playgroud)

有文件叫/usr/bin/sshd吗?如果没有,退出0返回状态.

case “$1” in
Run Code Online (Sandbox Code Playgroud)

检查$1第一个命令行选项的值.

    start)
Run Code Online (Sandbox Code Playgroud)

如果$1是'开始'......

            echo –n “Starting sshd: sshd”
Run Code Online (Sandbox Code Playgroud)

打印" Starting sshd: sshd".

            /usr/sbin/sshd
Run Code Online (Sandbox Code Playgroud)

执行/usr/sbin/sshd.

            echo “.”
Run Code Online (Sandbox Code Playgroud)

打印" .".

            ;;
Run Code Online (Sandbox Code Playgroud)

退出case声明.