<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ### 使用選擇器和 case 語句 > Smarts is the most exclusive club in town. Everyone welcome. > > — Sign 有時選擇性是很重要的。盡管你可以使用 if 書寫任何條件語句, 但 Puppet 還提供了幫助你更容易地表達條件的額外形式,例如: 選擇器(selector)和 case 語句。 #### 操作步驟 1. 在你的配置清單中添加如下代碼: ``` $systemtype = $operatingsystem ? { "Ubuntu" =&gt; "debianlike", "Debian" =&gt; "debianlike", "RedHat" =&gt; "redhatlike", "Fedora" =&gt; "redhatlike", "CentOS" =&gt; "redhatlike", default =&gt; "redhatlike", } notify { "You have a ${systemtype} system": } ``` 2. 接下來,再添加如下代碼: ``` class debianlike { notify { "Special manifest for Debian-like systems": } } class redhatlike { notify { "Special manifest for RedHat-like systems": } } case $operatingsystem { "Ubuntu", "Debian": { include debianlike } "RedHat", "Fedora", "CentOS": { include redhatlike } } ``` #### 工作原理 上面的例子同時演示了選擇器(selector)和 case 語句,讓我們來看看它們是如何工作的。 * **selector** 在第一個例子中,我們使用了一個選擇器(操作符 ?)根據變量 $operatingsystem 的值為 $systemtype 變量賦值。 這類似于 C 語言和 Ruby 語言中的三元運算符, 不同之處在于三元運算符只能在兩個可選值之間選擇,而此處的選擇器則可以提供你想要的多個值。 Puppet 會與 $operatingsystem 的每一個可能的值(如 Ubuntu、Debian等)一一做比較。 這些值可以是正則表達式(例如,部分字符串匹配,或使用通配符),但在本例中我們僅僅使用了文本字符串。 一旦發現匹配的值,選擇器表達式就會返回與其相關的匹配字符串。 例如,如果 $operatingsystem 的值是 Fedora,選擇器表達式就會返回字符串 redhatlike 并將其賦予變量 $systemtype。 * **Case** 語句 與選擇器不同,case 語句不會返回任何值。 case 語句適用于, 當你想根據一個表達式的不同的值執行不同代碼的情況。 在我們的第二個例子中,使用 case 語句根據 $operatingsystem 的值或者包含 debianlike 類,或者包含 redhatlike 類。 再次指出,Puppet 會根據 $operatingsystem 值與潛在的匹配列表進行比較。 這些匹配列表可以是正則表達式,或者是字符串,或者像我們的例子中一樣使用 逗號間隔的字符串列表。 當 Puppet 在匹配列表中找到一個匹配值,就會執行與此匹配項相關的大括號之間的代碼。所以, 如果 $operatingsystem 的值是 Ubuntu,那么 include debianlike 就會被執行。 #### 更多用法 一旦你掌握了選擇器和 case 語句的基本用法,你會發現下面的技巧非常有用。 ##### 正則表達式 與 if 語句一樣,你可以在選擇器和 case 語句中使用正則表達式,并且你也可以 捕獲匹配組的值,并使用 $1、$2 等引用它們的值。 ``` case $lsbdistdescription { /Ubuntu (.+)/: { notify { "You have Ubuntu version $1": } } /CentOS (.+)/: { notify { "You have CentOS version $1": } } } ``` ##### 默認值 選擇器和 case 語句都可以讓你指定一個 default 值,當沒有其他匹配項時就使用這個默認值: ``` $lunch = "Sausage and chips" $lunchtype = $lunch ? { /chips/ => "unhealthy", /salad/ => "healthy", default => "unknown", } notify { "Your lunch was ${lunchtype}": } ``` 結果為: ``` Your lunch was unhealthy ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看