SHELL第二課學習筆記

來源:互聯網
上載者:User

標籤:shell 變數

SHELL第二課學習筆記

A.指令碼規範申明資訊:

#!bin/bash#Date 14:00 2014-1-30#Author xiaoping#Mail [email protected]#Function: Thsi scrits funcion is ....#version 1.1~

B.注意點:

a.成對內容一次寫出來

{}、[]、‘‘、``、""#

b.[]中括弧兩端需要空格

c.流程式控制制語句一次性寫完格式

d.vi多行縮排

按v進入visual狀態,選擇多行,用shit+>或shit+<縮排或縮出

C.SHELL中的變數:


a.局部變數和環境變數,局部變數只適用於當前shell,而環境變數是全域的,它適用於所有當前shell以及其派生出來的任意子進程,有些變數是使用者建立的,其他的則是專用的shell變數。

環境變數可以在命令中設定,但使用者退出時這些變數值也會丟失,因此最好在使用者家目錄下的.bash_profile檔案中或在全域配置/etc/bashrc,或/etc/profile檔案或者/etc/profile.d/中定義。將環境變數放入profile檔案中,每次使用者登入時這些變數值都將被初始化。規範上的所有環境變數均為大寫。環境變數應用於使用者進程前,必須用export命令匯出。

b、局部變數
局部變數的範圍被限定在建立它們的shell中。local函數可以用來建立局部變數,但僅限於函數內使用。局部變數可以通過簡單的賦予它一個值或一個變數名來設定,用declare內建函數來設定,或者省略也可。

顯示環境變數例如:

[[email protected] jiaoben]$ echo $HOME/home/xiaoping[[email protected] jiaoben]$ echo $PS1[\[email protected]\h \W]\$[email protected] jiaobe
HISTSIZE 記錄在命令列檔案中的命令列數
TMOUT 退出前等待逾時的秒數
vi /etc/profile  #後面添加然後儲存測試HISTSIZE=5   TMOUT=5[[email protected] jiaoben]# . /etc/profile[[email protected] jiaoben]# timed out waiting for input: auto-logout [[email protected] jiaoben]$[[email protected] jiaoben]# . /etc/profile[[email protected] jiaoben]# history  618  . /etc/profile  619  history  620  vi /etc/profile  621  . /etc/profile  622  history[[email protected] jiaoben]# timed out waiting for input: auto-logout[[email protected] jiaoben]$

D.自己定義的環境變數標準:(一般是字母,數字,底線組成,字母開頭)

a.export 變數名=value

b.變數名=value;exprot 變數名

c.declare -x 變數名=value 

提示:以上為三種設定環境變數的方法

E.定義局部變數

一般變數是數字不用引號,命令變數用``引用,其他用雙引號。

單引號:

可以說是所見即所得 (WYSIWYG):即將單引號內的內容原樣輸出,或者描述為單引號裡面看到的是什麼就會輸出什麼。

雙引號:

把雙引號內的內容輸出出來;如果內容中有命令、變數等,會先把變數、命令解析出結果,然後在輸出最終內容來。

不加引號:

不會將含有空格的字串視為一個整體輸出, 如果內容中有命令、變數等,會先把變數、命令解析出結果,然後在輸出最終內容來,如果字串中帶有空格等特殊字元,則不能完整的輸出,需要改加雙引號,一般連續的字串,數字,路徑等可以用。

例1:

[[email protected] oldboy]# echo ‘`date`‘#→單引號時看到啥就顯示啥`date`[[email protected] oldboy]# echo "`date`"#→雙引號時如果裡面是變數,會先把變數解析成具體內容在顯示Sat Oct 29 18:02:59 CST 2011[[email protected] oldboy]# echo `date`#→對於連續的字串等內容一般不加引號也可,加雙引號一般比較保險,推薦Sat Oct 29 18:03:08 CST 2011

拓展:awk調用shell變數問題

雙引號:

可以說是所見即所得 (WYSIWYG):即將雙引號內的內容原樣輸出,或者描述為雙引號裡面看到的是什麼就會輸出什麼。

單引號:

把單引號內的內容輸出出來;如果內容中有命令、變數等,會先把變數、命令解析出結果,然後在輸出最終內容來。

例1

[email protected] ~]$ ett=123   [[email protected] ~]$ awk ‘BEGIN {print ‘$ett‘}‘123[[email protected] ~]$ awk ‘BEGIN {print "$ett"}‘$ett[[email protected] ~]$ ett=‘abc‘[[email protected] ~]$ awk ‘BEGIN {print "$ett"}‘$ett[[email protected] ~]$ awk ‘BEGIN {print ‘$ett‘}‘[[email protected] ~]$ awk ‘BEGIN {print "‘$ett‘"}‘abc

F.指令碼定義函數中的變數作用僅在函數中的作用。

總結:模仿炒作系統內建的etc/init.d/function函數庫指令碼的思路。

tar zcf etc_${date +%F}_xiaoping.tar




本文出自 “小k” 部落格,請務必保留此出處http://zyp88.blog.51cto.com/1481591/1607600

SHELL第二課學習筆記

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.