<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之旅 廣告
                # 25. 別名 Bash `別名` 本質上不外乎是鍵盤上的快捷鍵,縮寫呢是避免輸入很長的命令串的一種手段.舉個例子, 在 [~/.bashrc](http://tldp.org/LDP/abs/html/sample-bashrc.html) 文件中包含別名 `lm="ls -l | more`, 而后每個命令行輸入的 lm [[1]](http://tldp.org/LDP/abs/html/aliases.html#FTN.AEN18669) 將會自動被替換成 `ls -l | more`. 這可以節省大量的命令行輸入和避免記住復雜的命令和選項. 設定別名 `rm="rm -i"` (交互的刪除模式) 防止無意的刪除重要文件,也許可以少些悲痛. 腳本中別名作用十分有限. 如果別名可以有一些 C 預處理器的功能會更好, 例如宏擴展, 但不幸的是 bash 別名中沒有擴展參數. [[2]](http://tldp.org/LDP/abs/html/aliases.html#FTN.AEN18676) 另外, 腳本在 "復合結構" 中并不能擴展自身的別名,例如 [if/then](http://tldp.org/LDP/abs/html/tests.html#IFTHEN), 循環和函數. 另一個限制是,別名不能遞歸擴展. 基本上是我們無論怎么喜歡用別名都不如函數 [function](http://tldp.org/LDP/abs/html/functions.html#FUNCTIONREF) 來的更有效. 樣例 25-1. 腳本中的別名 ``` #!/bin/bash # alias.sh shopt -s expand_aliases # 必須設置此選項, 否則腳本不能別名擴展. # 首先來點好玩的東西. alias Jesse_James='echo "\"Alias Jesse James\" was a 1959 comedy starring Bob Hope."' Jesse_James echo; echo; echo; alias ll="ls -l" # 可以任意使用單引號 (') 或雙引號 (") 把別名括起來. echo "Trying aliased \"ll\":" ll /usr/X11R6/bin/mk* #* 別名可以運行. echo directory=/usr/X11R6/bin/ prefix=mk* # See if wild card causes problems. echo "Variables \"directory\" + \"prefix\" = $directory$prefix" echo alias lll="ls -l $directory$prefix" echo "Trying aliased \"lll\":" lll # 所有 /usr/X11R6/bin 文件清單以 mk 開始. # 別名可以處理連續的變量 -- 包含 wild card -- o.k. TRUE=1 echo if [ TRUE ] then alias rr="ls -l" echo "Trying aliased \"rr\" within if/then statement:" rr /usr/X11R6/bin/mk* #* 結果報錯! # 別名在復合的表達式中并沒有生效. echo "However, previously expanded alias still recognized:" ll /usr/X11R6/bin/mk* fi echo count=0 while [ $count -lt 3 ] do alias rrr="ls -l" echo "Trying aliased \"rrr\" within \"while\" loop:" rrr /usr/X11R6/bin/mk* #* 這里的別名也沒生效. # alias.sh: 行 57: rrr: 命令未找到 let count+=1 done echo; echo alias xyz='cat $0' # 列出了自身. # 注意強引. xyz # 這看起來能工作, #+ 盡管 bash 文檔不介意這么做. # # 然而, Steve Jacobson 指出, #+ "$0" 參數的擴展在上面的別名申明后立刻生效. exit 0 ``` 取消別名的命令刪除之前設置的別名. 樣例 25-2. unalias: 設置和取消一個別名 ``` #!/bin/bash # unalias.sh shopt -s expand_aliases # 開啟別名擴展. alias llm='ls -al | more' llm echo unalias llm # 取消別名. llm # 'llm' 不再被識別后的報錯信息. exit 0 bash$ ./unalias.sh total 6 drwxrwxr-x 2 bozo bozo 3072 Feb 6 14:04 . drwxr-xr-x 40 bozo bozo 2048 Feb 6 14:04 .. -rwxr-xr-x 1 bozo bozo 199 Feb 6 14:04 unalias.sh ./unalias.sh: llm: 命令未找到 ``` #### 注意 [[1]](http://tldp.org/LDP/abs/html/aliases.html#AEN18669) ... 作為命令行的第一個詞. 顯然別名只在命令的開始有意義. [[2]](http://tldp.org/LDP/abs/html/aliases.html#AEN18676) 然而, 別名可用來擴展位置參數.
                  <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>

                              哎呀哎呀视频在线观看