嵌入式學習筆記:shell腳本變量詳(xiang)解
時(shi)間:2018-09-06 來源(yuan):未知
【1】shell 腳本的基礎知識(1)shell 腳本的本質
編譯型語言
解釋型語言
shell 腳本語(yu)言(yan)是解釋(shi)型語(yu)言(yan)
shell 腳本的本質
shell 命令(ling)的有序集合(he)
(2)shell 編程(cheng)(cheng)的基本(ben)過程(cheng)(cheng)
基本過程(cheng)分為三步(bu):
step1. 建立 shell 文件
包(bao)含任(ren)意(yi)多(duo)行操作(zuo)系統命(ming)令(ling)或 shell 命(ming)令(ling)的文本文件;
step2. 賦(fu)予 shell 文(wen)件執行權(quan)限
用 chmod 命令修改權限;
step3. 執行 shell 文件(jian)
直接在(zai)命令行(xing)上調(diao)用 shell 程序(xu).
(3)實例
step1: 建(jian)立(li) shell 文件(jian) (可用(yong)任(ren)何建(jian)立(li)文本文件(jian)的方法)
$ cat prog1.sh
date
Step2: 賦予(yu)執行(xing)權限(xian): (初始文本文件無執行(xing)權限(xian))
$ chmod 740 prog1.sh
Step3: 執(zhi)行該 shell 程序
$ prog1.sh
prog1.sh: not found
(shell 在標準搜索路徑(jing)中找不到 prog1.sh) Step4: 指定路徑(jing)或(huo)修改環境變量 PATH 后執行 shell 程序(xu)
$ ./prog1.sh
2009 年 12 月 16 日 星(xing)期二(er) 14:52:57 CST
【2】shell 變量
(1)shell 變量
shell 允許(xu)用戶建立變(bian)量存儲數(shu)據,但不(bu)支持數(shu)據類型(xing)(xing)(整型(xing)(xing)、字符(fu)(fu)、浮點型(xing)(xing)),將任何賦給(gei)變(bian)量的值都(dou)解(jie)釋為一串字符(fu)(fu)
Variable=value
a. count=1
b. echo $count
c. DATE=`date`
d. echo $DATE
(2) Bourne Shell 有如(ru)下四種變量:
1) 用戶自(zi)定義(yi)變量
2) 位置(zhi)變量即(ji)命令行參數
3) 預定義變量
4) 環境變(bian)量
(3) 用戶自(zi)定義變(bian)量(liang)
1) 在 shell 編(bian)程中通常使用(yong)全大(da)寫變量(liang),方便識(shi)別(bie) $ COUNT=1
2) 變量的(de)調用:在變量前加$
$ echo $HOME
3) Linux Shell/bash 從右向左(zuo)賦值 $Y=y
$ X=$Y
$ echo $X y
4) 使用 unset 命令刪除變量的賦值 $ Z=hello
$ echo $Z hello
$ unset Z $ echo $Z
(4) 位置變量
$0 與(yu)鍵入的命令(ling)行一樣,包含(han)腳本(ben)文件(jian)名
$1,$2,……$9 分別包含(han)第(di)一個(ge)到第(di)九個(ge)命令行參數(shu)
$# 包含命(ming)令行參數的個數
$@ 包含所有命令行參數:“$1,$2,……$9”
$? 包含前(qian)一個命令(ling)的退出狀態
$* 包含(han)所有命令(ling)行參數(shu):“$1,$2,……$9”
$$ 包含正在執行(xing)進程的 ID 號
(5) 常用 shell 環(huan)境變量
HOME: /etc/passwd 文件中列出的用戶主目錄
IFS:Internal Field Separator, 默(mo)認為空(kong)格,tab 及(ji)換(huan)行符
PATH :shell 搜索(suo)路徑
PS1,PS2:默認提(ti)(ti)示符(fu)($)及換行提(ti)(ti)示符(fu)(>)
TERM:終端類型,常用的有 vt100,ansi,vt200,xterm 等(deng)

