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

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ## Bash中的特殊變量 在Bash中有一些特殊的變量,他們分別是: * $0 當前腳本的文件名 * $\# 傳遞給腳本或函數的參數個數。 * $\* 傳遞給腳本或函數的所有參數。 * $@ 傳遞給腳本或函數的所有參數。被雙引號\(" "\)包含時,與 $\* 稍有不同,下面將會講到。 * $? 上個命令的退出狀態,或函數的返回值。 * $$ 當前Shell進程ID。對于 Shell 腳本,就是這些腳本所在的進程ID。 * $! 最近一次執行命令的進程號 ### 1.$0 變量 $0變量是顯示當前的文件名,譬如以下腳本為test.sh。 ``` #!/bin/bash echo $0 # 打印test.sh腳本名 echo $(dirname $0) # $0 還有一種用法就是通過dirname命令顯示當前腳本所在的位置。 ``` ### 2.$\#變量 傳遞給腳本或函數的參數個數。 ``` #!/bin/bash echo $# # 輸出當前位置變量的個數。 if [ $# -ne 3 ];then # 位置變量通常用于判斷位置參數的個數 echo "please input three parameter!" fi ``` ## 3.$\* 和$@變量 $_ 和 $@ 都表示傳遞給函數或腳本的所有參數,不被雙引號\(" "\)包含時,都以"$1" "$2" … "$n" 的形式輸出所有參數。 但是當它們被雙引號\(" "\)包含時,"$_" 會將所有的參數作為一個整體,以"$1 $2 … $n"的形式輸出所有參數;"$@" 會將各個參數分開,以"$1" "$2" … "$n" 的形式輸出所有參數,以下是區別的案例。 ``` #!/bin/bash echo "\$*=" $* echo "\"\$*\"=" "$*" echo "\$@=" $@ echo "\"\$@\"=" "$@" echo "print each param from \$*" for var in $* do echo "$var" done echo "print each param from \$@" for var in $@ do echo "$var" done echo "print each param from \"\$*\"" for var in "$*" do echo "$var" done echo "print each param from \"\$@\"" for var in "$@" do echo "$var" done ``` ## 4.$?變量 判斷上一個命令或函數的返回狀態,其中0表示成功,非0表示失敗。 ``` [root@blog.puppeter.com_centos ~]# ls abc # 在Linux終端執行ls abc,其中abc文件不存在系統會包錯 ls: abc: No such file or directory [root@blog.puppeter.com_centos ~]# echo $? # 這時我執行$?就會顯示一個非0的數字,表示上一次命令執行失敗 1 [root@blog.puppeter.com_centos ~]# ls /etc/passwd # 查看/etc/passwd文件是否存在,很顯然他存在 /etc/passwd [root@blog.puppeter.com_centos ~]# echo $? # 會返回一個0的值,表示上一個命令返回成功。 0 ``` 我們在寫腳本的過程中也可通過exit函數來告訴系統當前腳本的執行狀態,譬如以下案例。 ``` #!/bin/bash echo "hello world" exit 0 # 表示成功執行此腳本,退出狀態碼為0 ``` ## 5.$$變量 顯示當前進程ID,我們在Linux系統中每執行一次命令或一個腳本都會啟動一次進程,而進程ID就相當于唯一識別進程的身份證號。 ``` [root@blog.puppeter.com_centos ~]# echo $$ # 他會打印出當前echo執行過程中的進程ID 1307 ``` 如果我們寫了一個程序是常駐內存的,可以把此進程ID寫到程序的pid文件中來告訴當前程序運行過程中的進程ID值,其實這有點像Apache和Nginx,這兩款WEB服務都會將當前進程的ID值寫入自己的pid文件中,當我要重啟或關閉時其實就是獲取pid文件中的進程ID并發送KILL信號。 ## 6.$!變量 將一程序放在系統后臺,打印$!放在后臺這個程序的pid。 ``` [root@blog.puppeter.com_centos ~]# sh 2.sh & [1] 57947 [root@blog.puppeter.com_centos ~]# echo $! 57947 ```
                  <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>

                              哎呀哎呀视频在线观看