sh 模板与bash脚本的一些便利设置。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sh 模板与bash脚本的一些便利设置。相关的知识,希望对你有一定的参考价值。

#!/usr/bin/env bash

set -o nounset
set -o pipefail
set -o errexit
### Uncomment to enable debugging
#set -o verbose
#set -o xtrace

declare -r BOLD="$(tput bold)"
declare -r DIM="$(tput dim)"
declare -r NORMAL="$(tput sgr0)"
declare -r SMUL="$(tput smul)"
declare -r RMUL="$(tput rmul)"
declare -r LRED="${BOLD}$(tput setaf 1)"

function realpath() {
  $(type -p greadlink readlink | head -1) -f "${@}"
}

declare -r MY_CMD="$(realpath "${0}")"
declare -r MY_DIR="$(dirname "${MY_CMD}")"
declare -r MY_REALNAME="$(basename "${MY_CMD}")"
### In help texts we might want to show the name the user used to call this script rather than
### its real name.
declare -r MY_NAME="$(basename "${0}")"

### Outputs an Error Message
function error() {
  local msg

  while read -r msg; do
    echo "[ERROR] ${msg}" 1>&2
  done
}

function warn() {
  local msg

  while read -r msg; do
    echo "[WARN] ${msg}"
  done
}

function info() {
  local msg

  while read -r msg; do
    echo "[INFO] ${msg}"
  done
}

function parse_cli() {
  echo "Parse CLI here." | info
}

function main() {
  parse_cli "${@}"
  
  echo "An error message" | error
  echo "A warning" | warn
  cat <<HELP | info
Some Multiline-
Help-Text
HELP
  cat <<COLORS | info
${BOLD}${LRED}COLORED${NORMAL}${BOLD} OUTPUT${NORMAL}

       ${BOLD}${MY_NAME}${NORMAL} ${SMUL}command${RMUL}

       ${BOLD}${MY_NAME}${NORMAL} [${SMUL}options${RMUL}] ${SMUL}command${RMUL}

       ${BOLD}${MY_NAME}${NORMAL} [-h | --help]
COLORS
}

main "${@}"

以上是关于sh 模板与bash脚本的一些便利设置。的主要内容,如果未能解决你的问题,请参考以下文章

sh Bash脚本模板

sh 一个bash脚本,用于在Ubuntu上设置OneDrive与GNOME的集成。

sh Bash模板。可能适用于中等或更多涉及的脚本。

bash与sh的区别

sh 简单的bash shell脚本模板。有两个版本:1)简单的基于env var的选项,以及2)添加了命令行参数解析

sh 用于快速设置Golang环境的Bash脚本