1. 程式人生 > 實用技巧 >web前端程式碼重構

web前端程式碼重構

20.11.24

變數的配置規則

  1. 變數與變數內容以一個等號『=』來連結,如下所示:
    『myname=VBird』

  2. 等號兩邊不能直接接空格符,如下所示為錯誤:
    『myname = VBird』或『myname=VBird Tsai』

  3. 變數名稱只能是英文字母與數字,但是開頭字元不能是數字,如下為錯誤:
    『2myname=VBird』

  4. 變數內容若有空格符可使用雙引號『"』或單引號『'』將變數內容結合起來,但

    • 雙引號內的特殊字元如 $ 等,可以保有原本的特性,如下所示:
      『var="lang is $LANG"』則『echo $var』可得『lang is en_US』
    • 單引號內的特殊字元則僅為一般字元 (純文字),如下所示:
      『var='lang is $LANG'』則『echo $var』可得『lang is $LANG』
  5. 可用跳脫字元『 \ 』將特殊符號(如 [Enter], $, , 空格符, '等)變成一般字元;

  6. 在一串命令中,還需要藉由其他的命令提供的資訊,可以使用反單引號『`命令`』或 『$(命令)』。特別注意,那個 ` 是鍵盤上方的數字鍵 1 左邊那個按鍵,而不是單引號! 例如想要取得核心版本的配置:
    『version=$(uname -r)』再『echo $version』可得『2.6.18-128.el5』

    在一串命令中,在` 之內的命令將會被先執行,而其執行出來的結果將被作為外部的輸入資訊。

  7. 若該變數為擴增變數內容時,則可用 "$變數名稱" 或 ${變數} 累加內容,如下所示:
    『PATH="$PATH":/home/bin』

  8. 若該變數需要在其他子程式執行,則需要以 export 來使變數變成環境變數:
    『export PATH』,如果單純執行『export』,則會將所有環境變數顯示出來

  9. 通常大寫字元為系統預設變數,自行配置變數可以使用小寫字元,方便判斷 (純粹依照使用者興趣與嗜好) ;

  10. 取消變數的方法為使用 unset :『unset 變數名稱』例如取消 myname 的配置:
    『unset myname』

  11. 例項:如何進入到目前核心的模組目錄

    [root@www ~]# cd /lib/modules/`uname -r`/kernel
    [root@www ~]# cd /lib/modules/$(uname -r)/kernel
    

列出環境變數命令envexport

用env觀察環境變數與常見的環境變數說明:

範例一:列出目前的 shell 環境下的所有環境變數與其內容。
[root@www ~]# env
HOSTNAME=www.vbird.tsai    <== 這部主機的主機名
TERM=xterm                 <== 這個終端機使用的環境是什麼型別
SHELL=/bin/bash            <== 目前這個環境下,使用的 Shell 是哪一個程式?
HISTSIZE=1000              <== 『記錄命令的筆數』在 CentOS 預設可記錄 1000 筆
USER=root                  <== 使用者的名稱啊!
LS_COLORS=no=00:fi=00:di=00;34:ln=00;36:pi=40;33:so=00;35:bd=40;33;01:cd=40;33;01:
or=01;05;37;41:mi=01;05;37;41:ex=00;32:*.cmd=00;32:*.exe=00;32:*.com=00;32:*.btm=0
0;32:*.bat=00;32:*.sh=00;32:*.csh=00;32:*.tar=00;31:*.tgz=00;31:*.arj=00;31:*.taz=
00;31:*.lzh=00;31:*.zip=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.bz=00;3
1:*.tz=00;31:*.rpm=00;31:*.cpio=00;31:*.jpg=00;35:*.gif=00;35:*.bmp=00;35:*.xbm=00
;35:*.xpm=00;35:*.png=00;35:*.tif=00;35: <== 一些顏色顯示
MAIL=/var/spool/mail/root  <== 這個使用者所取用的 mailbox 位置
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin:
/root/bin                  <== 不再多講啊!是執行檔案命令搜尋路徑
INPUTRC=/etc/inputrc       <== 與鍵盤按鍵功能有關。可以配置特殊按鍵!
PWD=/root                  <== 目前使用者所在的工作目錄 (利用 pwd 取出!)
LANG=en_US                 <== 這個與語系有關,底下會再介紹!
HOME=/root                 <== 這個使用者的家目錄啊!
_=/bin/env                 <== 上一次使用的命令的最後一個引數(或命令本身)
  • HOME
    代表使用者的家目錄

  • SHELL
    目前這個環境使用的 SHELL 是哪支程式。Linux 預設使用 /bin/bash

  • HISTSIZE
    歷史命令記錄條數

  • MAIL
    當我們使用 mail 這個命令在收信時,系統會去讀取的郵件信箱檔案 (mailbox)。

  • PATH
    執行檔案搜尋的路徑

  • LANG
    語系資料

  • RANDOM

    隨機隨機數變數

    [root@www ~]# declare -i number=$RANDOM*10/32768 ; echo $number 8 <== 此時會隨機取出 0~9 之間的數值喔!


用set觀察所有變數

[root@www ~]# set
BASH=/bin/bash           <== bash 的主程式放置路徑
BASH_VERSINFO=([0]="3" [1]="2" [2]="25" [3]="1" [4]="release" 
[5]="i686-redhat-linux-gnu")      <== bash 的版本啊!
BASH_VERSION='3.2.25(1)-release'  <== 也是 bash 的版本啊!
COLORS=/etc/DIR_COLORS.xterm      <== 使用的顏色紀錄檔案
COLUMNS=115              <== 在目前的終端機環境下,使用的欄位有幾個字元長度
HISTFILE=/root/.bash_history      <== 歷史命令記錄的放置檔案,隱藏檔
HISTFILESIZE=1000        <== 存起來(與上個變數有關)的檔案之命令的最大紀錄筆數。
HISTSIZE=1000            <== 目前環境下,可記錄的歷史命令最大筆數。
HOSTTYPE=i686            <== 主機安裝的軟體主要型別。我們用的是 i686 相容機器軟體
IFS=$' \t\n'             <== 預設的分隔符
LINES=35                 <== 目前的終端機下的最大行數
MACHTYPE=i686-redhat-linux-gnu    <== 安裝的機器型別
MAILCHECK=60             <== 與郵件有關。每 60 秒去掃瞄一次信箱有無新信!
OLDPWD=/home             <== 上個工作目錄。我們可以用 cd - 來取用這個變數。
OSTYPE=linux-gnu         <== 作業系統的型別!
PPID=20025               <== 父程式的 PID (會在後續章節才介紹)
PS1='[\u@\h \W]\$ '      <== PS1 就厲害了。這個是命令提示字元,也就是我們常見的
                             [root@www ~]# 或 [dmtsai ~]$ 的配置值啦!可以更動的!
PS2='> '                 <== 如果你使用跳脫符號 (\) 第二行以後的提示字元也
name=VBird               <== 剛剛配置的自定義變數也可以被列出來喔!
$                        <== 目前這個 shell 所使用的 PID
?                        <== 剛剛執行完命令的回傳值。
  • PS1:(命令提示符配置)

    • \d :可顯示出『星期 月 日』的日期格式,如:"Mon Feb 2"
    • \H :完整的主機名。
    • \h :僅取主機名在第一個小數點之前的名字,如鳥哥主機則為『www』後面省略
    • \t :顯示時間,為 24 小時格式的『HH:MM:SS』
    • \T :顯示時間,為 12 小時格式的『HH:MM:SS』
    • \A :顯示時間,為 24 小時格式的『HH:MM』
    • @ :顯示時間,為 12 小時格式的『am/pm』樣式
    • \u :目前使用者的賬號名稱,如『root』;
    • \v :BASH 的版本資訊,如鳥哥的測試主機板本為 3.2.25(1),僅取『3.2』顯示
    • \w :完整的工作目錄名稱,由根目錄寫起的目錄名稱。但家目錄會以 ~ 取代;
    • \W :利用 basename 函式取得工作目錄名稱,所以僅會列出最後一個目錄名。
    • # :下達的第幾個命令。
    • $ :提示字元,如果是 root 時,提示字元為 # ,否則就是 $ 囉~
  • $:(關於本 shell 的 PID)

    目前這個 Shell 的執行緒代號,亦即是所謂的 PID (Process ID)。『 echo $$ 』出現的數字就是你的 PID 號碼。

  • ?:(關於上個執行命令的回傳值)

    上一個執行的命令所回傳的值一般來說,如果成功的執行該命令, 則會回傳一個 0 值,如果執行過程發生錯誤,就會回傳『錯誤程式碼』一般就是以非為 0 的數值來取代。

  • OSTYPE, HOSTTYPE, MACHTYPE:(主機硬體與核心的等級)

    目前個人計算機的 CPU 主要分為 32/64 位,其中 32 位又可分為 i386, i586, i686,而 64 位則稱為 x86_64。 由於不同等級的 CPU 命令集不太相同,因此你的軟體可能會針對某些 CPU 進行優化,以求取較佳的軟體效能。 所以軟體就有 i386, i686 及 x86_64 之分。