sh shell函数用于在shell脚本中进行波浪扩展。适用于Linux和OS X.

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sh shell函数用于在shell脚本中进行波浪扩展。适用于Linux和OS X.相关的知识,希望对你有一定的参考价值。

#########################################
# pathname tilde expansion
# supports ~ ~/path and ~user only
# ~+ ~- and digits are not supported and
# doesn't make sense in a script anyways
# Author: Brian A. Onn
# Date: Mon  1 May 2017 06:06:43 UTC
#########################################
expandpath () {
  local path="$1"
  local homedir expath user rest
  case "${path}" in
    '~') expath="${HOME}" ;;
    '~'/*) expath="${HOME}/${path##'~/'}" ;;
    '~'*) user=${path%%/*}; rest=${path##$user}; user=${user##'~'}
          if [ -x /usr/bin/dscacheutil ]; then    ## OS X
            set 1 $(dscacheutil -q user -a name "${user}" | grep -e '^dir:')
            homedir="$3"
          else
            IFS=: set 1 $(getent passwd "${user}")  ## Linux
            homedir="$7"
          fi
          [ -z "${homedir}" ] && expath="${path}" || expath="${homedir}${rest}"
          ;;
    *) expath="${path}" ;;
  esac
  echo "${expath}"
}

以上是关于sh shell函数用于在shell脚本中进行波浪扩展。适用于Linux和OS X.的主要内容,如果未能解决你的问题,请参考以下文章

shell脚本的调用方式

shell基本语法

shell编程知识

shell脚本介绍shell脚本结构和执行date命令用法shell脚本中的变量

linux的shell脚本介绍shell脚本结构和执行date命令用法shell脚本中的变量

Shell脚本介绍脚本结构和执行date命令用法脚本中的变量