1. 程式人生 > >shell 指令碼的基本定義

shell 指令碼的基本定義

注意不能有控制,指令之間

【1】shell指令碼的基礎知識
    (1)shell指令碼的本質
	 編譯型語言
	 解釋型語言
		shell指令碼語言是解釋型語言
		shell指令碼的本質
			shell命令的有序集合
    (2)shell 程式設計的基本過程
	 基本過程分為三步:
	 step1. 建立 shell 檔案
   	        包含任意多行作業系統命令或shell命令的文字檔案;
	 step2. 賦予shell檔案執行許可權
 	        用chmod命令修改許可權;
	 step3. 執行shell檔案
   	        直接在命令列上呼叫shell程式.
    (3)例項
	 step1: 建立shell檔案 (可用任何建立文字檔案的方法)
  		   $ cat  prog1.sh
  		     date
	 Step2: 賦予執行許可權:  (初始文字檔案無執行許可權)
   		   $ chmod  740  prog1.sh
	 Step3: 執行該shell程式
  	           $ prog1.sh
       		     prog1.sh: not found    
     		     (shell在標準搜尋路徑中找不到prog1.sh)
	 Step4: 指定路徑或修改環境變數PATH後執行shell程式
   		   $ ./prog1.sh  
   		   2009年  12月  16日  星期二  14:52:57  CST

  

變數是用$來定義,注意不能有空格

  

【2】shell變數
    (1)shell變數
	 shell允許使用者建立變數儲存資料,但不支援資料型別(整型、字元、浮點型),
	 將任何賦給變數的值都解釋為一串字元
						Variable=value
	 a.   count=1
	 b.   echo $count
	 c.   DATE=`date`
	 d.   echo $DATE
     (2) Bourne Shell有如下四種變數:
		1) 使用者自定義變數 
		2) 位置變數即命令列引數 
 	 	3) 預定義變數 
		4) 環境變數
     (3) 使用者自定義變數
	 1) 在shell程式設計中通常使用全大寫變數,方便識別 
		$ COUNT=1
	 2) 變數的呼叫:在變數前加$ 
		$ echo $HOME 
	 3) Linux Shell/bash從右向左賦值
		$Y=y
		$ X=$Y
		$ echo $X 
		y	 
	 4) 使用unset命令刪除變數的賦值 
		$ Z=hello 
		$ echo $Z 
		hello 
		$ unset Z 
		$ echo $Z 
     (4) 位置變數
	 $0   與鍵入的命令列一樣,包含指令碼檔名
	 $1,$2,……$9  分別包含第一個到第九個命令列引數
	 $#   包含命令列引數的個數
	 
[email protected]
包含所有命令列引數:“$1,$2,……$9” $? 包含前一個命令的退出狀態 $* 包含所有命令列引數:“$1,$2,……$9” $$ 包含正在執行程序的ID號 (5) 常用shell環境變數 HOME: /etc/passwd檔案中列出的使用者主目錄 IFS:Internal Field Separator, 預設為空格,tab及換行符 PATH :shell搜尋路徑 PS1,PS2:預設提示符($)及換行提示符(>) TERM:終端型別,常用的有vt100,ansi,vt200,xterm等

  

count=1 
echo $count

count='a'
echo $count

count="aaaa"
echo $count

count=1.1
echo $count

DATE='date'
echo $DATE

TEST='ifconfig'
echo $TEST

echo "num:$#"  #打印出來引數個數$#
echo "all paras:$*"打印出來引數有哪些

echo "all paras:[email protected]"
echo "\$0 is $0"
echo "\$1 is $1"
echo "\$2 is $2"
echo "\$3 is $3"
echo "\$4 is $4"
echo "\$5 is $5"
echo "\$6 is $6"
echo "\$7 is $7"
echo "\$8 is $8"
echo "\$9 is $9"
echo "\$10 is ${10}" #注意當有2個的時候,需要有大括號
echo "\$11 is ${11}"