使用者环境与起始档.ppt_第1页
使用者环境与起始档.ppt_第2页
使用者环境与起始档.ppt_第3页
使用者环境与起始档.ppt_第4页
使用者环境与起始档.ppt_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Introduction to Unix part 3,Shell Script,2,使用者環境與起始檔,內容: Shell環境運作 Shell的種類 Shell Script Programming,3,Shell 環境運作,Shell 運作程序 出現 提示符號(”%” 記號)準備接受命令。 使用者(或終端機傳輸)輸入命令。 依照 PATH 變數,尋找命令位置。 PATH裡面存著命令所存放的目錄, ex:PATH=/usr/local/bin:/usr/sbin (分隔符號為:) 解譯並執行命令。 輸出結果或錯誤訊息給使用者。 再出現 Prompt 準備接受下一個命令。,Q: 為什麼在pads1執行我寫好的prgram calc, 必須要./calc呢? A: 因為你的PATH裡面沒有存著現在目錄(.), 所以系統去PATH變數找不到calc的目錄, 只要將.也加入PATH裡, 之後就可以只輸入calc執行,4,外殼與核心,系統核心 系統程式與系統函數所構成 外殼 外殼工具 Bourne Shell (sh) Korn Shell (ksh) Bourn Again Shell (bash) C Shell (csh) TC Shell (tcsh),5,使用者環境,環境變數 檢視環境變數 echo $PATH 變更環境變數 export PATH=$PATH:. (將目前目錄存到PATH中) 要使用任何的shell變數都必須要加$ 使用export設定變數的值只會在這次登入有效, 下次登入必須重新設定 (所以將export PATH=$PATH:.寫在shell初始設定檔.tcshrc) Note: 使用pads1的人請寫在.bashrc; cs工作站沒有export指令,6,Shell Script 程式簡介,何謂 Shell script 相當於dos裡的批次檔 將欲連續執行多個命令寫在file裡 通常副檔名為.sh Shell script (命令稿) 多個外殼命令 + 變數 + 程式控制結構 外殼命令 ls, cp, cat, mkdir, . 程式控制結構 if, while, for, 變數 環境變數, 自訂變數, 位置變數,mkdir test2 cp test1/* test2 rm r test1,example.sh,Shell Script 程式簡介,和c program的差別 Script為interpreted languages; 而c program必須先透過compiler編譯成可執行檔 通常第一行 為#!/bin/sh 宣告這個 script 使用的 shell 名稱,讓系統知道該程式需要使用什麼 shell 來執行 除了第一行的 #! 是用來宣告 shell 的之外,其他的 # 都是註解用途,8,Shell Script 程式簡介,Shell script 執行 步驟 1:利用 pico 編輯程式 pico hello.sh 步驟 2:設定成可執行檔 chmod +x hello.sh 步驟 3:執行 shell script 程式 hello.sh,Shell Script 程式簡介,Shell script 變數 自訂變數: 可自己隨意設定變數, 如同在c program可宣告任意名字的變數, 在shell裡變數預設為string a=5 echo “intger = $a” 要使用此變數時, 必須在變數前加$,10,輸入輸出語法,輸出敘述 echo echo “Good lucky to you” 相當於C program裡的printf 一定會換行 輸入敘述 read echo “What is your name =” read name 會將使用者的輸入存到name 相當於C program裡的scanf,輸入輸出範例,12,Shell Script 程式簡介,Shell script 變數 位置變數: 在命令列時, 給此script的參數 $0$9; $#代表有幾個參數; $*存著給script的參數們 $0代表script本身 ex: source hello.sh good job $0=hello.sh , $1=good, $2=job, $#=2, $*= good job,位置參數的範例,14,數值運算,expr: 在shell中的四則數學運算, 必須使用此指令來執行 expr 5 + 2 在 + - * / 的二邊都有空白,如果沒有空白將產生錯誤: 若要將expr的運算結果assign給某個變數, 則必須用(在!左邊的按鍵)將expr的運算包起來 sum=expr 5 + 2 特別注意*為萬用字元, 必須使用跳脫字元來表示*在此為乘法 mul= expr 5 * 2,數值運算範例,數值運算範例輸出結果,17,選擇性結構敘述,條件敘述 數值比較:運算所傳回的結果是true或false 以下兩種寫法等價, 所以你可以任意選擇test或的寫法 test integer1 eq integer2 integer1 eq integer2 中括號前後要有空白,18,選擇性結構敘述,條件敘述 字串比較 test str1!=str2 str1 != str2 ,19,選擇性結構敘述,條件敘述 檔案屬性測試 test d file_1 -d file_1,20,選擇性結構敘述,if 程式結構 標準格式 簡單格式 最簡潔格式,if 條件判斷 then 命令敘述區段 fi,if 條件判斷; then 命令敘述區段 fi,if 條件判斷; then; 命令敘述區段; fi,若要把下一行的程式, 寫到上一行, 必須用分號隔開,if程式結構,if搭配著測試字串的範例,if 搭配著測試file的範例,24,選擇性結構敘述,case 程式結構,case variable in pattern_1) 命令敘述區塊 ; pattern_2) statement 1 statement 2 statement 3; pattern_3) 命令敘述區塊 ; pattern *) esac,1. case的結尾是esac 2.每個選項間要用;作區隔 3. 最後一個選項*代表著不符合以上的選項, 都會進到這裡來, 等於c program的default 4. variable可以隨意命名,case的範例,26,重複性結構敘述,for 迴圈結構,for var in List do commands commands done,for 迴圈會將空白當成分隔符號, 然後一一執行。 所以List可以由 一堆string以空白隔開組成 var可以隨意命名 var在for迴圈執行的過程, 會從List裡取值 ex: for var in “how are you” 1st loop var=how 2nd loop var=are 3rd loop var=you 總共執行3次,Q: 此program代表什麼意義?,28,重複性結構敘述,while 迴圈結構,while 條件判斷 do 命令區塊 done,本週練習,此次練習有兩個版本, 一個簡單, 一個比較困難 可自行挑選要實作出哪個版本 完成版本1: 70分 完成版本2(step1step3): 90分 完成版本2(step1step5): 100分,練習3 (版本1),step1:使用者在執行script時, 會給數個參數 ex: practice.sh test1 test2 step2: 根據使用者給的參數, 在家目錄尋找是否有此目錄, 若是, 請列出此目錄裡面的所有檔案,練習3 (版本2),step1: 使用者在執行script時, 會給一個參數, 是一個目錄名稱(要真實存在的目錄, 且目錄下有3個以上的檔案, 此目錄在家目錄下) ex: practice.sh test1 step2: 列出此目錄下的檔案 step3: 讓使用者輸入某個檔案名, 查詢此檔案是否為可執行檔 可以讓使用者一直輸入, 直到使用者輸入stop才停止輸入,step4: step3的迴圈停止後, 列出剛剛使用者所查詢的檔案 Ex: list=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论