애플리케이션을 시작하고 중지할 수 있는 Linux 쉘 스크립트

애플리케이션을 시작하고 중지할 수 있는 Linux 쉘 스크립트

(편집자 주: 다음은 Google에서 번역한 내용입니다.)

당신에게 인사하세요. 애플리케이션을 시작하거나 중지할 수 있는 셸 스크립트를 만들고 싶습니다. 쉘 스크립트는 각각 애플리케이션을 시작하거나 중지하기 위해 시작 또는 중지 매개변수를 사용합니다. 당연히 관련된 애플리케이션은 쉘 스크립트에서 지적되어야 합니다.

미리 감사드립니다..모든 제안에 열려있습니다.


프랑스어 원문:

안녕하세요. 애플리케이션을 생성하거나 애플리케이션을 다운로드하려면 쉘 스크립트를 사용하십시오. 스크립트 셸은 해당 애플리케이션을 시작 또는 중지하거나 매개변수에 따라 애플리케이션을 중지합니다. 적용의 문제입니다. 스크립트 쉘의 문제입니다..

Merci d'avance .. je suis ouvert à 선전 제안

답변1

아래 bash-script-template이 주어지면 다음을 수행할 수 있습니다.

  • 긴 옵션을 추가 --start하고 --stop변수를 설정한 후 if 문에서 사용하세요.
  • start또는 stop에 있는지 확인한 ${remaining_args[@]}다음 해당 정보를 사용할 수 있습니다.
if printf '%s\n' ${remaining_args[@]} | grep -Pq '^start$' ; then
  start your app
elif printf '%s\n' ${remaining_args[@]} | grep -Pq '^stop$' ; then
  stop your app
fi

템플릿은 다음과 같습니다.

#!/bin/bash - 
#===============================================================================
#
#          FILE: <filename here>
#
#   DESCRIPTION: 
#
#       OPTIONS: ---
#  REQUIREMENTS: ---
#          BUGS: ---
#         NOTES: ---
#        AUTHOR: 
#  ORGANIZATION: 
#       CREATED: 
#       LICENSE: 
#      REVISION:  ---
#===============================================================================

#=== Init ======================================================================
set -o nounset   # exit on unset variables.
set -o errexit   # exit on any error.
set -o errtrace  # any trap on ERR is inherited
#set -o xtrace    # show expanded command before execution.

unalias -a       # avoid rm being aliased to rm -rf and similar issues
LANG=C           # avoid locale issues
VERBOSE=         # Don't be verbose, unless given '-v'-option

ScriptVersion="1.0"

trap "cleanup" EXIT SIGTERM SIGINT

#=== Functions =================================================================
usage () {
  echo "

  Usage :  ${0##/*/} [options] [--]

  Options:
  -h|--help     Display this message
  -V|--version  Display script version
  -v|--verbose  Print informational text

  "
  exit 0
} # ----------  end of function usage  ----------

option_handling () {
  # see /usr/share/doc/util-linux/examples/getopt-parse.bash
  OPTS=$(getopt --name "$0" \
    --options 'hVv' \
    --longoptions 'help,version,verbose' \
    --shell bash \
    -- "$@") \
    || (echo; echo "See above and try \"$0 --help\""; echo ; exit 1)

  eval set -- "$OPTS"
  unset OPTS

  while true ; do
    case "$1" in
      -h|--help)
        usage
        ;;
      -V|--version)
        echo "$0 -- Version $ScriptVersion"; exit 0
        ;;
      -v|--verbose)
        VERBOSE=true
        shift
        ;;
      --)
        shift ; break
        ;;
      *)
        echo 'This should not have happened.  Probably getopt is misconfigured.'
        exit 2
        ;;
    esac
  done
  remaining_args=( "$@" )
} # ----------  end of function option_handling  ----------

_verbose () { # printf '%s\n' if VERBOSE, be silent otherwise
  if [[ ${VERBOSE} ]]; then
    _verbose() {
      printf '%s\n' "$@"
    }
    _verbose "$@"
  else
    _verbose() {
      :
    }
  fi
} # ----------  end of function _verbose  ----------

cleanup () { # Will be called by the trap above, no need to call it manually.
  :
} # ----------  end of function cleanup  ----------

# here you could source your scripting-libraries
# and make use of flatten.sh later.
# see https://github.com/markgraf/flatten.sh.git

#=== Main ======================================================================
main () {
  option_handling "$@"

  # Your script goes here...

} # ----------  end of function main  ----------

main "$@"

#=== End =======================================================================


관련 정보