不同 Linux 发行版的 bash/shell 中的占位符

不同 Linux 发行版的 bash/shell 中的占位符

我遇到了一些问题。我需要在 Linux 的自动运行中添加一些脚本。但在我的基础架构中,我有不同的发行版。当然,在自动运行中添加这些脚本的方式不同。在 CentOS 中是 chkconfig,在 debian/ubuntu 中是 update-rc.d。因此,我有一些脚本:

    function autorun () {
    if [ -f /etc/debian_version ]; then
       os="Debian $(cat /etc/debian_version)"
       echo $os
       update-rc.d ${i} defaults"
    elif [ -f /etc/redhat-release ]; then
       os=`cat /etc/redhat-release`
       echo $os
       chkconfig --add ${i}"
    else
       os="$(uname -s) $(uname -r)"
       echo $os
       echo "Other OS. Please check type of autorun in your OS"
    fi
    }

    $i=nginx

    autorun $i 

是的,它有效。我可以不声明变量就写这个吗,像这样:

autorun nginx

请帮忙,也许你可以提出其他方法,那会很好。谢谢。

答案1

在中bash,函数的参数可以在变量等中使用$1$2

function ar () 
{
    echo $1
}

会导致

> ar Hello
Hello

> ar Hello World
Hello

> ar "Hello World"
Hello World

我相信这就是您想要的,但如果不是,请编辑您的问题以使其更清楚。

相关内容