我的那些shellscripts, bash扩展函数

作为一个开发者,近期在公司里搞运维, 可能是开发语言用多了,用起bash来,还是喜欢造函数使用,做个分享分享……

自定义Linux函数集合

#function return value if success
export RAY_RET_SUCCESS=0
#function return value if failed
export RAY_RET_FAILED=1
#判断空字符串
function IsEmpty() {
 if [ -z "$1" ]; then
 return $RAY_RET_SUCCESS
 fi
 return $RAY_RET_FAILED
}
#判断是否为root用户
function HasRootPremission() {
 if [ "$(id -u)" != "0" ]; then
 return $RAY_RET_FAILED
 fi
 return $RAY_RET_SUCCESS
}
#判断命令是否存在
function IsCommandExists() {
 local CMDS
 for cmd in "$@"; do
 if ! type $cmd >/dev/null 2>&1; then
 CMDS="$CMDS $cmd"
 fi
 done
 if [ ! -z "$CMDS" ]; then
 return $RAY_RET_FAILED
 fi
 return $RAY_RET_SUCCESS
}
# 判断是否是目录
function IsDir() {
 if [ -d "$1" ]; then
 return $RAY_RET_SUCCESS
 fi
 return $RAY_RET_FAILED
}
# 判断文件存在
function IsFile() {
 if [ -f "$1" ]; then
 return $RAY_RET_SUCCESS
 fi
 return $RAY_RET_FAILED
}
#创建文件,自动创建上级目录
function CreateFile() {
 if ! IsFile $1; then
 $RAY_SUDO mkdir -p $(dirname $1)
 $RAY_SUDO touch $1
 $RAY_SUDO chown `whoami`:`whoami` $1
 fi
 IsFile $1
 return $?
}
# 创建一个随机密码
function MakePassword() {
 if IsCommandExists openssl; then
 openssl rand -base64 18 2>/dev/null
 else
 head /dev/urandom | tr -dc 'a-zA-Z0-9/\-=[];,._+{}:<>@%^&*()' | fold -w ${1:-18} | head -n 1
 fi
}
# 判断shell环境是否为zsh
function IsZsh() {
 if [[ `ps -p $$ -oargs=` =~ "zsh" ]]; then
 return $RAY_RET_SUCCESS
 fi
 return $RAY_RET_FAILED
}
# 判断shell环境是否为bash
function IsBash() {
 if [[ `ps -p $$ -oargs=` =~ "bash" ]]; then
 return $RAY_RET_SUCCESS
 fi
 return $RAY_RET_FAILED
}
# 判断操作系统是否为ubuntu
function IsUbuntu() {
 if cat /etc/issue /etc/*-release | grep -Eqi "Ubuntu"; then
 return $RAY_RET_SUCCESS
 fi
 return $RAY_RET_FAILED
}
# 判断操作系统是否为centos或redhat
function IsRedHat() {
 if cat /etc/issue /etc/*-release | grep -Eqi "(CentOS|Red Hat Enterprise Linux Server)"; then
 return $RAY_RET_SUCCESS
 fi
 return $RAY_RET_FAILED
}
#类似windows下的pause暂停功能
function pause() {
 local key
 read -n1 -r -p "Press any key to continue..." key
 return $RAY_RET_SUCCESS
}
作者:小苏梅原文地址:https://segmentfault.com/a/1190000019836182

%s 个评论

要回复文章请先登录注册