shell 指令碼的基本定義
阿新 • • 發佈:2018-12-23
注意不能有控制,指令之間 【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}"