天天看點

Linux declare指令、Linux tail 指令

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點選跳轉到教程。

Linux declare指令用于聲明 shell 變量。

declare為shell指令,在第一種文法中可用來聲明變量并設定變量的屬性([rix]即為變量的屬性),在第二種文法中可用來顯示shell函數。若不加上任何參數,則會顯示全部的shell變量與函數(與執行set指令的效果相同)。

文法

declare [+/-][rxi][變量名稱=設定值] 或 declare -f                [+/-][rxi][變量名稱=設定值] 或 declare -f      

參數說明:

  • +/-  "-"可用來指定變量的屬性,"+"則是取消變量所設的屬性。
  • -f  僅顯示函數。
  • r  将變量設定為隻讀。
  • x  指定的變量會成為環境變量,可供shell以外的程式來使用。
  • i  [設定值]可以是數值,字元串或運算式。

執行個體

聲明整數型變量

# declare -i ab //聲明整數型變量
# ab=56 //改變變量内容
# echo $ab //顯示變量内容
56                
# ab=56 //改變變量内容
# echo $ab //顯示變量内容
56      

改變變量屬性

# declare -i ef //聲明整數型變量
# ef=1  //變量指派(整數值)
# echo $ef //顯示變量内容
1
# ef="wer" //變量指派(文本值)
# echo $ef 
0
# declare +i ef //取消變量屬性
# ef="wer"
# echo $ef
wer                
# ef=1  //變量指派(整數值)
# echo $ef //顯示變量内容
1
# ef="wer" //變量指派(文本值)
# echo $ef 
0
# declare +i ef //取消變量屬性
# ef="wer"
# echo $ef
wer      

設定變量隻讀

# declare -r ab //設定變量為隻讀
# ab=88 //改變變量内容
-bash: ab: 隻讀變量
# echo $ab //顯示變量内容
56                
# ab=88 //改變變量内容
-bash: ab: 隻讀變量
# echo $ab //顯示變量内容
56      

聲明數組變量

# declare -a cd='([0]="a" [1]="b" [2]="c")' //聲明數組變量
# echo ${cd[1]}
b //顯示變量内容

# echo ${cd[@]} //顯示整個數組變量内容
a b c                
# echo ${cd[1]}
b //顯示變量内容

# echo ${cd[@]} //顯示整個數組變量内容
a b c      

顯示函數

# declare -f
command_not_found_handle () 
{ 
  if [ -x /usr/lib/command-not-found ]; then
    /usr/bin/python /usr/lib/command-not-found -- $1;
    return $?;
  else
    if [ -x /usr/share/command-not-found ]; then
      /usr/bin/python /usr/share/command-not-found -- $1;
      return $?;
    else
      return 127;
    fi;
  fi
}                
command_not_found_handle () 
{ 
  if [ -x /usr/lib/command-not-found ]; then
    /usr/bin/python /usr/lib/command-not-found -- $1;
    return $?;
  else
    if [ -x /usr/share/command-not-found ]; then
      /usr/bin/python /usr/share/command-not-found -- $1;
      return $?;
    else
      return 127;
    fi;
  fi
}      

-----------------------------------  我 是 分 隔 線 ----------------------------------------

tail 指令可用于檢視檔案的内容,有一個常用的參數 -f 常用于查閱正在改變的日志檔案。

tail -f filename 會把 filename 檔案裡的最尾部的内容顯示在螢幕上,并且不但重新整理,隻要 filename 更新就可以看到最新的檔案内容。

指令格式:

tail [參數] [檔案]                  [參數] [檔案]        

參數:

  • -f 循環讀取
  • -q 不顯示處理資訊
  • -v 顯示詳細的處理資訊
  • -c<數目> 顯示的位元組數
  • -n<行數> 顯示行數
  • --pid=PID 與-f合用,表示在程序ID,PID死掉之後結束.
  • -q, --quiet, --silent 從不輸出給出檔案名的首部
  • -s, --sleep-interval=S 與-f合用,表示在每次反複的間隔休眠S秒

執行個體

要顯示 notes.log 檔案的最後 10 行,請輸入以下指令:

tail notes.log                .log      

要跟蹤名為 notes.log 的檔案的增長情況,請輸入以下指令:

tail -f notes.log                -f notes.log      

此指令顯示 notes.log 檔案的最後 10 行。當将某些行添加至 notes.log 檔案時,tail 指令會繼續顯示這些行。 顯示一直繼續,直到您按下(Ctrl-C)組合鍵停止顯示。

顯示檔案 notes.log 的内容,從第 20 行至檔案末尾:

tail +20 notes.log                +20 notes.log      

顯示檔案 notes.log 的最後 10 個字元:

tail -c 10 notes.log                -c 10 notes.log      

繼續閱讀