获取shell脚本参数(linux脚本编写教程)

来源:国外服务器 在您之前已被浏览:1 次
导读:目前正在解读《获取shell脚本参数(linux脚本编写教程)》的相关信息,《获取shell脚本参数(linux脚本编写教程)》是由用户自行发布的知识型内容!下面请观看由(国外主机 - www.2bp.net)用户发布《获取shell脚本参数(linux脚本编写教程)》的详细说明。
笨笨网美国主机,w ww.2 b p .n e t

在编写脚本的过程中,很多时候都需要我们去设置IP地址,密码之类的变量,为了易用性,我们对这些变量的值都会提供选择范围或者设置随机值以及默认值等。

那么如果我们要判断使用脚本的人有没有输入密码应该怎么做呢?下面看一个常见的例子:

#设置与检测数据库root密码配置

root=`openssl rand -base64 8|md5sum|cut -c 1-8 `

read -p “请输入密码[ root ],默认[ ${root} ]:” root_pass

然后我们运行这段:获取shell脚本参数(linux脚本编写教程)

运行结果

此时会出现两个情况:

  • 用户输入了自定义的密码
  • 用户没有输入任何信息
  • 首先我们对脚本进行完善一下:

    #设置与检测数据库root密码配置

    root=`openssl rand -base64 8|md5sum|cut -c 1-8 `

    echo -e “请输入密码[ root ],默认[ ${root} ]:n”

    read root_pass

    echo -e “当前设置的密码: [ $root_pass ]”

    继续运行获取shell脚本参数(linux脚本编写教程)

    执行结果

    此时可以看到,如果直接回车会出现一个空白的现象,而只有用户输入的情况下才能出现密码,看到这有人会说:你都没设置,有密码才怪。的确,我还没设置,下面设置一下:

    #设置与检测数据库root密码配置

    root=`openssl rand -base64 8|md5sum|cut -c 1-8 `

    echo -e “请输入密码[ root ],默认[ ${root} ]:n”

    read root_pass

    if [[ -z “$root_pass” ]];then

    root_pass=$root

    fi

    echo -e “当前设置的密码: [ $root_pass ]”

    然后执行:获取shell脚本参数(linux脚本编写教程)

    出现了默认(随机)密码

    然后到这里就解决了,看到这可能又有人迷惑了?就这?

    别急,继续往下看。

    上面这个情况是只设置一个变量,但是如果需要设置好多呢?应该怎么办?一个设置加一个判断?

    NONONO,这样太麻烦了,下面介绍一个比较简单的方法:定义函数

    函数内容如下:

    input_check(){

    #1参未需要设置的变量值[提供默认变量]

    #2参为这个参数的备注信息[例如:数据库的root密码]

    #3参为一个随机/默认值

    #4参为这个变量名

    if [[ -z “$1” ]];then

    echo -e “${red_zt}检测到${2}没有输入,已使用默认值[ ${3} ]${end}”

    eval `echo “$4=$3″`

    else

    eval `echo “$4=$1″`

    fi

    }

    如何使用呢?我们把上面的案例放进去:

    input_check(){

    #1参未需要设置的变量值[提供默认变量]

    #2参为这个参数的备注信息[例如:数据库的root密码]

    #3参为一个随机/默认值

    #4参为这个变量名

    if [[ -z “$1” ]];then

    echo -e “${red_zt}检测到${2}没有输入,已使用默认值[ ${3} ]${end}”

    eval `echo “$4=$3″`

    else

    eval `echo “$4=$1″`

    fi

    }

    input(){

    echo -e “$1”

    read $2

    }

    root=`openssl rand -base64 8|md5sum|cut -c 1-8 `

    input “请输入密码[ root ],默认[ ${root} ]:” root_pass

    input_check “$root_pass” “数据库[root]密码” “$root” “root_pass”

    然后执行:获取shell脚本参数(linux脚本编写教程)

    通过函数判断并设置变量值

    有了这个函数之后,我们每次需要判断一个值只需要按照传参要求去调用即可实现默认值和自定义值的配置,例如:

    #设置与检测数据库root密码配置

    root=`openssl rand -base64 8|md5sum|cut -c 1-8 `

    input “请输入密码[ root ],默认[ ${root} ]:” root_pass

    input_check “$root_pass” “数据库[root]密码” “$root” “root_pass”

    #数据库初始权限配置

    input “是否关闭[ root ]用户远程登录[ y/n ],默认[ y ]” dislogin

    input_check “$dislogin” “数据库[ root ]用户登录权限” “y” “dislogin”

    #是否删除测试数据库

    input “是否删除[ test ]数据库[ y/n ],默认[ y ]” rm_db

    input_check “$rm_db” “删除[ test ]数据库确认” “y” “rm_db”

    #结果汇总

    red_z_green_z “数据库[ root ]用户密码:” “[ $root_pass ]”

    red_z_green_z “允许[ root ]远程登录:” “[ $dislogin ]”

    red_z_green_z “是否删除[ test ]数据库:” “[ $rm_db ]”

    input “是否继续[回车继续]” Y

    是不是打开了新大陆呢?其实还可以继续改进这个函数,想了解更多的话关注我等待更新吧。

    笨笨网美国主机,w ww.2 b p .n e t
    提醒:《获取shell脚本参数(linux脚本编写教程)》最后刷新时间 2025-03-21 11:16:54,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《获取shell脚本参数(linux脚本编写教程)》该内容的真实性请自行鉴别。