【问题标题】:bash test for yum or apt based linux基于 yum 或 apt 的 linux 的 bash 测试
【发布时间】:2013-05-11 22:20:52
【问题描述】:

简单的问题——在 bash 中测试 yum 或 apt-get 是否存在的规范方法是什么?我正在编写一个脚本,它将在客户端机器上运行并安装一致,然后为它创建一个 cron 作业......

【问题讨论】:

    标签: bash yum apt-get


    【解决方案1】:
    command -v apt-get &>/dev/null
    

    【讨论】:

      【解决方案2】:

      使用 bash 脚本(或 sh、zsh、ksh),您可以使用内置的 command -v yumcommand -v apt-get
      (是的,命令名为command)

      零输出意味着它不存在,否则你会得到命令路径。

      然后您可以使用测试语句来测试结果是否为空。

      [ -n "$(command -v yum)" ]
      [ -n "$(command -v apt-get)" ]
      

      注意:@ansgar-wiechers 建议的 which 的一个缺点是如果 'yum' 不存在,则抑制 stderr:

      [ -n "$(which yum 2>/dev/null)" ]

      其中一个好处是它不是内置的 shell。

      【讨论】:

      • 使用-v 选项,您也可以只检查退出状态:command -v yum > /dev/null && echo "yum found"
      • 或者更好:PKG_MANAGER=$( command -v yum || command -v apt-get ) || echo "Neither yum nor apt-get found"
      【解决方案3】:

      我可能会使用which:

      [ -n "$(which apt-get)" ]
      [ -n "$(which yum)" ]
      

      【讨论】:

        猜你喜欢
        • 2014-02-20
        • 2012-10-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-17
        相关资源
        最近更新 更多