<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>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## Bash腳本調試 Bash程序調試有多種方式: * 方法1:通過命令打印信息到標準輸出或追加到文件中 * 方法2:Bash自帶參數 * 方法3:set命令 ## 方法1 我們可以通過echo和prinf命令將信息打印到標準輸出或文件中。 ``` #!/bin/bash name=$1 pass=$2 echo $name # 打印名字 echo $pass if [ "$name" == "djangowang" -a "${pass}" == "123456" ];then echo "login succ" fi ``` ## 方法2 通過Bash自帶參數: * -x 跟蹤模式\(xtrace\)。可以跟蹤各種語法的調用,并打印出每個命令的輸出結果 * -n 檢測腳本是否有語法錯誤 * -v 可視模式,它會在執行bash程序的時候將要執行的內容也打印出來,除此之外并不改變bash執行的過程: 見以下test.sh ``` #!/bin/bash name=$1 pass=$2 if [ "$name" == "djangowang" -a "${pass}" == "123456" ];then echo "login succ" fi ``` -v 執行結果。 ``` [root@blog.puppeter.com_centos ~]# sh -v test.sh djangowang 123456 #!/bin/bash name=$1 pass=$2 if [ "$name" == "djangowang" -a "${pass}" == "123456" ];then echo "login succ" fi login succ ``` -x 執行結果。 ``` [root@blog.puppeter.com_centos ~]# sh -x test.sh djangowang 123456 + name=djangowang + pass=123456 + '[' djangowang == djangowang -a 123456 == 123456 ']' + echo 'login succ' login succ ``` ## 方法3 set是Bash的內建命令,經常用于程序的調試。注以下案例部分參考了[http://www.ruanyifeng.com/blog/2017/11/bash-set.html?utm\_source=tool.lu。](http://www.ruanyifeng.com/blog/2017/11/bash-set.html?utm_source=tool.lu。) 我們來看一下-x和+x的用法,以下是打印1-5的數字,其中-x用于打開調試,+x用于關閉調試。在程序執行過程中會看到打印到3,4時前面會有+號打印出調試信息。 ``` #!/bin/bash echo "1" echo "2" set -x echo "3" echo "4" set +x echo "5" ``` set -u的用法。 以下程序會在屏幕上打印出bar,其中變量$a是一個不存在的變量默認不會打出。 ``` #!/bin/bash echo $a echo bar ``` 我們對程序稍做修改,增加set -u會發現當遇到不存在的變量時程序會報錯(1.sh: line 4: a: unbound variable)。 ``` #!/bin/bash set -u echo $a echo bar ``` set -e的用法。以下案例foo是一個不存在的命令,執行時會報錯\(1.sh: line 2: foo: command not found\)但是Bash會忽略這個錯誤繼續往下執行。 ``` #!/bin./bash foo echo bar ``` -e 的作用就是腳本出現了問題就立馬終止執行。 ``` #!/bin./bash set -e foo echo bar ```
                  <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>

                              哎呀哎呀视频在线观看