Lịch sử và các bản phân phối HĐH Linux từ trước đến nay phần 8
lượt xem 6
download
Mỗi dòng của phần [operating systems] trong tập tin boot.ini xác định một phương án (một HĐH) khởi động và đựơc viết theo mẩu sau .
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Lịch sử và các bản phân phối HĐH Linux từ trước đến nay phần 8
- ˆ ˜’ ˆ 3.8 Shell - mot ngôn ngu lap trình 45 ˙ ˙ • file1 -ot file2 ´ˆ ’ ¯ úng, neu tap tin file1 "già" hon file1 (truong hop nguoc lai cua truong hop trên). D ’`’ ’`’ ˆ ’ ’ ’’ ’ ˙ ˙ ˙˙ ˙ • file1 -ef file2 ˆ´ ´ ´ˆ ’´ ’ ¯ úng, neu tap tin file1 và file2 có cùng mot so thiet bi và chı so mô ta inode. D ˆˆ ˆ ˆ ˙ ˙ ˙ • -o optname ´ ´ ’ ˆ ’ ¯u ’ ¯ úng, neu tùy chon optname cua he vo d ’oc kích hoat. Chi tiet xin xem trên trang D ˆ ˆ ˙ ˙ ˙ ˙ man bash. • -z string ˜ ´ ¯o ` ’ ¯ úng, neu d ˆ dài cua chuoi string bang không. D ˘ ˆ ˆ ˙ • -n string ˜ ´ ¯o ’ ¯ úng, neu d ˆ dài cua chuoi khác không. D ˆ ˆ ˙ • string1 == string2 ˆ’ ˜ ´ ` ¯ úng, neu hai chuoi trùng nhau. Có the thay hai == bang mot =. D ˘ ˆ ˆ ˆ ˙ • string1 !== string2 ˜ ´ ¯ úng, neu hai chuoi không trùng nhau. D ˆ ˆ • string1 < string2 ¯ úng, neu chuoi string1, theo tu d ˆ’n, d ´’ng truoc chuoi string2 (d´ i voi ngôn ˜ ˜ ´ D `’ ¯ie ¯u ’´’ ¯o ´’ ˆ ˆ ˆ ˆ ngu hien thoi). `’ ˜’ ˆ ˙ • string1 > string2 ¯ úng, neu chuoi string1, theo tu d ˆ’n, d ´’ng sau chuoi string2 (d´ i voi ngôn ngu ˜ ˜ ´ D `’ ¯ie ¯u ¯o ´’ ˜’ ˆ ˆ ˆ ˆ hien thoi). `’ ˆ ˙ • arg1 OP arg2 ’’ ¯ây ´ ` ` O d OP là mot trong các phép so sánh so hoc: -eq (bang), -ne (khác, không bang), ˘ ˘ ˆ ˆ ˙ -le (nho hon hoac bang), -gt (lon hon), -ge (lon hon hoac bang). ˙ ` ` ’’ ’’ -lt (nho hon), ˘˘ ´’ ’ ´’ ’ ˘˘ O cho các tham so arg1 và arg2 có˙ the su dung các so nguyên (âm hoac duong). ˙ ’’ ˆ ˆ’ ’’ ˜ ´ ´ ˘ ˆ ˆ ’’ ˙ ˙ ˆ’ ˆ’ ˆ’ ` ’’ Tu các bieu thuc d ˆ u kien co ban này có the xây dung các bieu thuc phuc tap theo ý `’ ´’ ¯ie ´’ ´’ ˆ ’ ˙ thuong PHU DINH, VÀ (cong) và HOAC: ˙ ˙ ’ ˘ ´ muon nho các phép lôgíc thông ’`’ `’ ˆ ˆ ¯˙ ˙ ˙ • !(expression) ˆ’ ´’ ´ ’ ¯i D Phép phu d nh. ¯ úng, neu bieu thuc sai. ˆ ˙ • expression1 -a expression2 ˆ’ ´’ ¯e ¯úng. ´’ ` Phép cong lôgic AND. ¯ úng neu ca hai bieu thuc d ˆ u d D ˆ ˆ ˙ • expression1 -o expression2 ˆ’ ´’ ¯úng. ´ ˆ Phép lôgíc hoac OR. ¯ úng neu mot trong hai bieu thuc d D ˘ ˆ ˙ ˙
- 46 Bash ’’ 3.8.3 Toán tu case ’ ’’ Dang cua toán tu case nhu sau: ’ ˙ case word in [ [(] pattern [ | pattern ] ... ) list ;; ] ...+ esac ˆ’ `’ ˜ ˜ ` Câu lenh case d ˆ u tiên khai trien tu word, và so sánh nó (word) voi moi tu trong mau ´’ ˆ `’ ¯a ˆ ˆ ˙ theo thu tu. Sau khi tìm thay su trùng nhau d `u tiên thì dung viec so sánh lai, và ´ ´’ ’ `’ ¯a ˆ ˆ ˆ pattern ’ ˙ ˙ ˙’ ’’ ˙ ’’ ˜ ´ thuc hien danh sách list các câu lenh d ´’ng sau mau d tìm thay. Giá tri tra lai boi toán tu ¯u ˆ ¯ã ˆ ˆ ˆ ’ này, bang 0, neu không tìm thay su trùng nhau nào. Trong truong hop nguoc lai,˙ tra lai giá tri ˙ ˘˙ ˙ ˙ ` ´ ´ ’ ’`’ ˆ ˆ’ ’ ’’ ˙ sách list d a ra. Ví du su dung toán tu case sau lay tu ˙ ˙’ ˙ ˙´ ` ˙ ´ i cùng trong danh ’’ mà câu lenh cuo ¯u ˆ ˆ ˆ’ ’ ’ ˙ ˙ ˙ script /etc/rc.d/rc.sysinit (FreeBSD-style): kênh giao tác case "$UTC" in yes|true) CLOCKFLAGS="$CLOCKFLAGS -u"; CLOCKDEF="$CLOCKDEF (utc)"; ;; no|false) CLOCKFLAGS="$CLOCKFLAGS --localtime"; CLOCKDEF="$CLOCKDEF (localtime)"; ;; esac ´ ´´ ´’ ´ Neu bien so (UTC) nhan giá tri yes hoac true, thì se thuc hien cap lenh thu nhat, nhan ˘ ˜’ˆ˘ˆ ˆ ˆˆ ˆ ˆ ˆ ˙˘ p thu hai. ˙ ˙ ˙ ˙˙˙ ˙ giá tri no hoac false - ca ˘ ´’ ˙ ˙ ˙ ’’ 3.8.4 Toán tu select ˆ’ ´’ ˆ ’’ Toán tu select cho phép to chuc hoi thoai voi nguoi dùng. Nó có dang sau: ´’ ’`’ ˙ ˙ ˙ select name [ in word; ] do list; done ˜ ˜ ` Lúc d ˆ u tu mau word hình thành mot danh sách nhung tu tuong ung voi mau này. Tap ¯a `’ ˆ `’ ’ ’ ´’ ´’ ˆ ˜’ ˆ ˆ ˙ báo loi tiêu chuan, hon nua moi tu d oc d kèm ˙ ˆ’ ˜ ˜ hop nhung tu này d ’oc d ’a vào kênh thông `’ ’ ˜’ ˆ `’ ¯u ’ ¯i ˜’ ¯u ’ ¯u ˆ ’ ’ ˙ i mot so thu tu. Neu mau word bi bo qua (không có trong toán tu select), thì se d a vào ˙˜ ˙ vo ˆ ´ ´’ ’ ´ ’ ’’ ´’ ˜ ¯u ˆ ˆ ˆ ’ ˙ ´˙ ˙ ¯ó, ´ ´ các tham bien vi trí (xem trên) theo mot cách tuong tu. Sau d dau nhac PS3 d ’oc d ’a ra, ˘ ¯u ’ ¯u ˆ ˆ ˆ ’’ ’ và he vo cho chuoi nhap vào trên d ˆ u vào tiêu chuan. Neu chuoi nhap vào có chua˙so, tuong ˙˜ `˙ ˙´ ˆ’ ˜ ´’ ´ ’ ’ ˆ ’ `’ ¯a ˆ ˆ ˆ ˆ ˆ ˆ ˙ ´ i mot trong các ˙so d hien ra, thì bien name se d oc gán giá ˙ bang tu d kèm voi so ´ ¯ã ˆ ´ ` ´’ ´ ung vo ˆ tri ˘ ´’ `’ ¯i ˜ ¯u ’ ˆ ˆ ˆ ’ ’ ˙ p vào mot dòng rong, thì so và tu se d oc hien ra them ˙ t lan nua. Neu nhap ˙˜ ˙ ´ ´ ˆ` ´ này. Neu nha mo ˆ ˜’ `’ ˜ ¯u ’ ˆ ˆ ˆ ˆ ˆ ˆ ˆ ˆ ’ vào bat ky mot giá tri˙nào khác, thì bien name se nhan giá tri bang không. Chuoi mà ngu˙`’i ´ ` ˙ˆ ˙ ˙ ˙ ˜ ´ ` ’o ˘ ˜ˆ ˆ ˆ ˆ ˙ d oc ˙ lai trong bien REPLY. Danh ˙sách lenh list d oc thuc hien voi giá ˙ ´ dùng nhap vào, ¯u ’ ghi ´’ ¯u ’ ˆ ˆ ˆ ’ˆ ’ ’ ´˙ ˙ ˙ ˙ ´ ˙´ ˙ ˙’ ’ tri bien name d chon. Sau d là mot script nho (xin hãy gõ không dau neu console cua ban ¯ã ¯ây ˆ ˆ ˆˆ ˙ a ho tro viec hien thi Tieng Viet): ˙ ˙ ˙ ˆ’ ’˜ ´ chu ˆ ’ ˆ ˆ ˆ ˙˙ ˙ ˙ kênh giao tác #!/bin/sh echo "Ban thích dùng OS nào?" ˙ select var in "Linux" "Gnu Hurd" "Free BSD" "MacOSX" "Solaris" "QNX" "Other"; break done echo "Ban d chon $var" ¯ã ˙ ˙
- ˆ ˜’ ˆ 3.8 Shell - mot ngôn ngu lap trình 47 ˙ ˙ Ghi d n trên vào mot tap tin (ví du, select.sh), thay d ˆ’i d ˆ’ tap tin thành kha thi (ví ’ ¯oa ¯o ¯e ˆ ˆˆ ˙ ˙˙ ˙ ˙ du, chmod 755 select.sh), và chay (./select.sh). Trên màn hình se hien ra câu ˜ˆ ˙ ˙ ˙ ’ hoi sau: kênh giao tác Ban thích dùng OS nào? ˙ 1) Linux 3) Free BSD 5) Solaris 7) Other 2) Gnu Hurd 4) MacOSX 6) QNX #? Hãy nhan mot trong 7 so d ’a ra (tu 1 d´ n 7). Neu ban nhap 4 (nhan ca ), thì se ´ ´ ¯u ´ ´’ `’ ¯e ˜ ˆ ˆ ˆ ˆ ˆ ˆ ˆ ˙ ˙ ˙ ´ thay thông báo sau: ˆ kênh giao tác Ban d chon MacOSX ¯ã ˙ ˙ ’’ 3.8.5 Toán tu for ’’ Toán tu for làm viec có khác mot chút so voi for trong các ngôn ngu lap trình thông thuong. ´’ ’`’ ˜’ ˆ ˆ ˆ ˙ ’ m giá tri cua mot bien so nào d (lên hoac xuong) mot d n vi sau moi ˙’ ´ ˙ ˆ ¯o ˜ ´´ Thay vì tang hoac gia ˘ ˘ ˘ ¯ó ˆˆˆ ˆ ˆ ’ ˙gán giá tri tiep theo ˙ ˙ ˙d a san cho bien˙d trong ˙ ˜ ´ ´ ¯ó vòng lap, thì nó trong danh sách tu ¯u ˘ ˆ ˆ `’ ˘ ’ ˙ lap. Nói chung cau trúc có dang sau: ˙ ˜ ´ moi vòng ˘ ˆ ˆ ˙ ˙ for name in words do list done ´ ’’ Quy luat xây dung danh sách lenh (list) giong trong toán tu if. Ví du. Script sau tao ˆ ˆ ˆ ’ ˙ ˙ , và fu3: ˙ ˙ ˙ các tap tin fu1, fu2 ˆ ˙ kênh giao tác for a in 1 2 3 ; do touch fu$a done ˆ’ ´ ’ Có the gõ ba dòng này trên mot dòng lenh, ket qua thu d ’oc tuong tu voi script. Dang ’ ´’ ¯u ’ ’ ’ ˆ ˆ ˆ ˙ ˙ ˙ ˙ ˙ ’ng quát cua toán tu for nhu sau: ’ ’’ to ˆ ’ for name [ in word; ] do list ; done ˆ’ `’ ˆ’ ˆ’ ´’ ` ’ ¯ au tiên cung xay ra su khai trien tu word theo quy luat khai trien bieu thuc (xem trên). Dˆ ˜ ˆ ’ ˙t d oc gán các giá tri thu d oc tu su khai trien này, và thuc hien ˙` ¯ó ´ ` ` Sau d bien name lan luo ¯u ’ ¯u ’ ’ ’ ˆ ˆ ’’ ’ ˆ ’ˆ ’ ˙ mo˙i lan nhu vay. Neu không có "in word", thì danh sách lenh ˙ ˙ ˙ ˙ ˙ ˜` ´ danh sách lenh list trong ˆ ˆ ˆ ˆ ˆ ˆ ’ ˙ thuc hien mot lan cho moi tham bien vi trí d d a ra. Trên Linux˙ có ˙ ˜ ` ´ list d ’oc ’ ˆ ¯u ’ ¯ã ¯u ˆ ˆˆ ˆ ’ ˙ seq, tiep nhan hai so nguyên làm tham so, ˙ d a ra chuoi tat ca các so nam ˙ ˙´ ˙ ˜ˆ ´ ´ và ¯u ˆ´ ’ ´˘ ˆ` chuong trình ˆ ˆ ˆ ˆ ’’ ’ ˙ ca chúng). Nho câu lenh này có the su dung for cua bash làm ’ ’’ ´ giua hai so này (cong thêm ’ ’ `’ ˜’ ˆ ˆ ˆ ˆ ˙ ˙ ˙ ’ ` ’’ for trong các ngôn ngu lap trình thông thuong. ¯ e làm d ’oc d ˆ u này chı ’ viec nhu toán tu ’`’ D ˆ ˜’ ˆ ¯u ’ ¯ie ˆ ’ ˙ viet vòng lap for nhu sau: ˙ ˙ can ´ ` ˘ ˆ ˆ ’ ˙ kênh giao tác for a in $( seq 1 6 ) ; do cat fu$a done ´ ’ Câu lenh (script) này d ’a ra màn hình noi dung cua 10 tap tin (neu có): "fu1", ..., "fu10". ¯u ˆ ˆ ˆ ˆ ˙ ˙ ˙
- 48 Bash ’’ 3.8.6 Toán tu while và until ’’ ’ Toán tu while làm viec tuong tu nhu if, nhung vòng lap các câu lenh trong list2 chı ˘ ˆ ’’ ˆ ’’ ’ ˙ còn d ˙ và se ngung khi d `u kien không thoa mãn. Cau trúc có ˙ ˙’ ` ´ thuc hien khi d ˆ u kien ˜ `’ ¯ie ¯úng, ¯ie ’ˆ ˆ ˆ ˆ ˆ ˙ nhu sau: ˙ ˙ ˙ dang ’ ˙ while list1 do list2 done Ví du: ˙ kênh giao tác while [ -d directory ] ; do ls -l directory >> logfile echo -- SEPARATOR -- >> logfile sleep 60 done ’ Chuong trình (script) trên se theo dõi và ghi lai noi dung cua thu muc directory theo ˜ ˆ ’’ ’ ˙ tu˙ong tu nhu toán tu while: ’˙ ´ ` ’’ tung phút neu thu muc còn ton tai. Toán tu until ’ ’ `’ ˆ ˆ ’ ’’ ’ ˙ ˙ ˙ until list1 do list2 done ¯ ˆ’ ˜ ` ` ˆ ˘ ’’ ˆ ’’ ’ ¯i ’ ¯ie Diem khác biet nam o cho, su dung giá tri phu d nh cua d ˆ u kien list1, tuc là list2 ´’ ˆ ˙ lenh cuoi cùng ˙ ˙ sách˙ list1 tra lai˙ trang thái thoát ra khác ´ ´ ’ thuc hien, neu câu ˆ trong danh ’ˆ ˆ ˆ ˙ ˙ ˙ ˙˙ không. ´ ˆ 3.8.7 Các hàm so ´ ´ Cú pháp He vo bash cho phép ngu’o’i dùng tao các hàm so cho mình. Hàm so làm viec và ˆ’ ` ˆ ˆ ˆ d ’oc su dung˙ giong nhu các câu lenh thông thuong cua he vo, tuc là chúng ta có the tu tao ˙` ˙ ˆ’ ’ ´ ¯u ’ ’’ ’ ˆ ’ ´’ ˆ ˆ ’ ’’ ˙ ˙ ´˙ ˙ ˙˙ ´ các câu lenh moi. Hàm so có cau trúc nhu sau: ´’ ˆ ˆ ˆ ’ ˙ function name () { list } Hon nua tu function không nhat thiet phai có, name xác d nh tên cua hàm (dùng d ˆ’ ´ ´ ’ ’ ’ ˜’ `’ ¯i ¯e ˆ ˆ ˙ list, nam giua { và }. ` ´ ` ’ ’’ goi hàm), còn phan thâm cua hàm so tao boi danh sách các câu lenh ˘ ˜’ ˆ ˆ ˆ Các câu lenh này se d ’oc thuc hien moi khi tên name d ’oc goi˙ (giong nhu mot lenh thông ˙ ˙˜ ´ ˜ ¯u ’ ¯u ’ ˆ ’ˆ ˆ ˆ ’ˆˆ ˙ `n chú ý rang hàm có the là d qui, tuc là goi hàm so o ngay trong phan thân cua ˙ ˙ ˙’ ˙ ´˙ ’ ˙ `˙ ` ’ thuong). Ca `’ ˘ ´’ ¯e ˆ ˆ ˆ ˆ’ ˆ ’ ˙’ hien thoi: không có tien trình moi nào d oc chay ˙ ´ thuc hien trong pham vi he vo ˆ ´ nó. Hàm so ’ ˆ `’ ´’ ¯u ’ ˆ ˆ ˆ ’ khi biên dich hàm so (khác voi˙viec chay script). ˙ ˙´ ´’ ˆ ˙ ˙ ˙ ˙ ˆ ˙ ˙ ˙ ´ ˆ 3.8.8 Tham so Khi hàm so d ’oc goi d ˆ’ thuc hien, các tham so cua hàm se tro thành các tham bien vi trí ´ ¯u ’ ´’ ´ ˜ ’’ ¯e ’ ˆ ˆ ˆ ˆ ˙ ˙ xem ˙trên)˙trong thoi gian thuc hien hàm này. Chúng d oc d ˘ t các˙tên (positional parameters, `’ ¯u ’ ¯a ˆ ’ ’ nhu $n, trong d n là so cua tham so mà chúng ta ˙ ´ n su dung. Viec d muo˙ ’’ ˙ ´ ˙´ ` ` ´’ ´ ˆ ¯ánh so bat d ˆ u tu ˆ ˘ ¯a ’ ¯ó ˆ ˆ ˆ ’ ´ ’˙ ˙´ ’ ’’ ´ ¯a ` 1, nhu vay $1 là tham so d ˆ u tiên. Cung có the su dung tat ca các tham so mot lúc nho $*, `’ ˜ ’ˆ ˆ ˆ ˆ ˆˆ ˙ so thu tu cua tham so nho $# Tham so vi ˙ so 0 không thay d ’i. Trong khi thuc ˙ và d ’a ra ´ ´’ ’ ’ ´ ´ˆ trí ´ ˆ `’ ¯u ¯o ˆ ˆ ˆ ’ ´ u gap câu lenh noi trú return (trong phan ˙ ˙ ˙ ` thâm cua hàm), thì hàm so se bi dung lai ´˜ ’ hien ne ˘ `’ ˆˆ ˆ ˆ ˆ ˆ và˙quyen d˙ ˆ u khien d ’oc trao cho câu lenh d ´’ng sau hàm. Khi thuc hien xong hàm so, các ˙ ˙ ˙´˙ ˆ’ ¯u ’ ` ` ˆ ¯ie ¯u ˆ ˆ ˆ ’ ´ n vi trí và tham˙bien d ˆ c biet # se d ’oc tra lai các giá tri mà chúng có truoc khi chay ˙ ˙ ˙ ´ ¯a ’ tham bie ’´’ ˜ ¯u ˆ ˆ ˆ ´ n˙ noi bo (local) ˙ ˙ ˙ ˙ ˙ ˙ ˆ ˆˆ hàm. Bie Neu muon tao ˙ ˆ t ˙ ˆ’ ’’ ´ ´ ´ ¯i mo tham bien d a phuong, có the su dung tu khóa local. Cú pháp d ’a ra `’ ¯u ˆ ˆ ˆ ’’ ˙ong giong het các tham bien khác, chı có˙ d `u can d ´ ng sau tu khóa local: ˙´ ˙ ´ ¯i ´ ˆ` ’ bien d a phu ’ `’ ¯ie ˆ ¯u ˆ ˆ ˆ ˆ ’ ’ ˙ ˙
- ’ ˆ’ ˆ 3.9 Script cua he vo và lenh source 49 ˙ ˙ ´ ˆ’ˆ local name=value. Duoi d là mot ví du hàm so, thuc hien công viec cua lenh seq d ’´’ ¯ây ¯ã ˆ ˆ ’ˆ ˙ ˙ ˙ ˙ ˙ ˙ nhac d´ n o trên: ´ˆ ˘ ¯e ’’ kênh giao tác seq() { local I=$1; while [ $2 != $I ]; do { echo -n "$I "; I=$(( $I + 1 )) }; done; echo $2 } Can chú ý d´ n tùy chon -n cua echo, nó (tùy chon) huy bo viec tao dòng moi. Mac dù ` ’ ’’ˆ ´’ ˘ ¯e ˆ ˆ ˙ `u ý nghıa voi muc d chúng ta muon o d ˙ nhung se rat có ích ˙ ˙ ˙ ´ ’’ ¯ây, ˜´ tùy chon này không có nhie ˜ ´’ ¯ích ˆ ˆ ˆ ’ ˙ hàm so voi muc d khác. Hàm so tính giai thua fact Mot ví du khác: ˙´ ´ ´’ ˆ trong các `’ ¯ích ˆ ˆ ˙ ˙ ˙ kênh giao tác fact() { if [ $1 = 0 ]; then echo 1; else { echo $(( $1 * $( fact $(( $1 -- 1 )) ) )) }; fi } ˆ’ ´ ¯ ây là hàm so giai thua, mot ví du cua hàm d ˆ qui. Hãy chú ý d´ n su khai trien so hoc, ´ ’ D `’ ¯e ¯e ’ ˆ ˆ ˆ ˆ ˙ ˙ ˙ ˙ ˙ ´ và phép the các câu lenh. ˆ ˆ ˙ ’ ˆ’ ˆ 3.9 Script cua he vo và lenh source ˙ ˙ ˆ’ ¯u ’ ˜ ´ ’ ˆ’ ’ Script cua he vo chı là các tap tin có chua chuoi lenh. Tuong tu hàm so script có the d ’oc ´’ ˆ ˆˆ ˆ ’’ ’ ˙ mot câu lenh. Cú pháp truy cap d´ n các tham so cung nhu hàm so. Trong các ˙ ˙ ˙ ˙ ´˜ ´ thuc hien nhu ˆ ˆ ¯e ’ˆ ˆ ˆ ˆ ˆ ’ ’ truong ˙ ’p thông thuong khi chay script se ˙ mot tien trình moi d ’oc chay. ¯ e có the thuc ˙` ho ˙ ˙ D ˆ’ ˆ’ ’ ˜ có ˆ ´ ’`’ ´’ ¯u ’ ˆ ’’ ˙ o trong ban bash hie˙n thoi, can su dung câu lenh source, hay˙mot dau cham "." ` ’’ ˙ ˙ ´˙ ´ hien script ’’ ’ `’ ˆ ˆ ˆ ˆ ˆˆ ˆ (d˙`ng nghıa cua source). Trong˙ truong hop này˙script chı d ’n gian là mot tham so cua lenh ˙’ ˙ ´’ˆ ˜’ ’ `’ ¯o ¯o ˆ ˆ ˆ ’ ’ ˙ ˙ ˙ nói trên. Câu lenh se có dang: ˜ ˆ ˙ ˙ source filename [arguments] ’` Câu lenh này d c và thuc hien các câu lenh có trong tap tin filename trong môi truong ¯o ˆ ’ˆ ˆ ˆ ’ ˙và tra lai ˙ tri, xác d˙nh boi câu lenh cuoi cùng cua filename. Neu filename ˙ ˙ ˙’ ´ ´ ’ giá ’’ hien thoi,`’ ¯i ˆ ˆ ˆ ˆ không chua dau ˙ ch chéo, thì ˙d ’ong dan, ˙ ˆ t kê trong bien so PATH, se d ’oc su dung d ˆ’ ˙ ˙ ˜ ´’ ´ ga ´´ ˜ ¯u ’ ’’ ˆ lie ¯u `’ ¯e ˆ ˆˆ ˙ ˙ ˙ ´˙ ´ ´ ´ ’ ’ tìm tap tin có tên filename. Tap tin này không nhat thiet phai kha thi (không nhat thiet ˆ ˆ ˆ ˆ ˆ ˆ ˙ ˙ ´ ´ˆ ` ’ i có bit x). Neu trong thu muc, liet kê trong PATH, không tìm thay tap tin can, thì se tìm pha ˜ ˆ ˆ ˆ ˆ ’ nó (tap tin) trong thu muc hien ˙thoi. ˙Neu có các tham so (d ’a ra arguments, xem d nh dang ˙ `’ ´ ´ ¯u ¯i ˆ ˆ ˆ ˆ ’ ˙ ˙ ˙ ˙ ˙
- 50 Bash ´ ´ ˆ ’’ câu lenh o trên), thì trong thoi gian thuc hien script chúng se thành các tham bien vi trí. Neu `’ ˜ ’ˆ ˆ ˆ ˙ có tham so, thì tham bien vi trí˙không thay d ’i. Giá tri (trang thái), mà lenh ˙ ˙ ´ ´ không ¯o ˆ ˆ ˆ ˆ source tra lai, trùng voi giá tri, tra lai boi ˙câu lenh cuoi cùng trong ˙ ˙ Neu không ˙câu lenh nào ´ script. ´ ’ ’ ’’ ´’ ˆ ˆ ˆ ˆ ˙ thuc hien, hoac không tìm thay tap˙ tin filename, thì trang thái thoát bang 0. ˙ ˙ ˙ ´ˆ ` d ’oc ’ ˆ ˘ ˘ ¯u ’ ˆ ˙ ˙ ˙ ˙ ˙ ˙ ˆ 3.10 Câu lenh sh ˙ ˆ’ ˆ’ ’ ˆ’ Ban luôn luôn có the chay mot ban sao cua he vo bash nho câu lenh bash hay sh. Khi này `’ ˆ ˙ the bat ban sao này chay ˙ t script nào d neu d a tên cua script nhu mot tham so cho ˙ ˙´ ’˙ ’˘ ’ có ˆ ´ ´ mo ¯ó, ˆ ¯u ˆ ’ˆ ˆ ’ ’ thuc hien script myscript can d ’a câu lenh "sh ˙ myscript". ˙ ˙ ` ¯u lenh bash. Nhu vay, d ˆ ’ ˆ’ ˆ ¯e ˆ ˆ ˆ Neu xem noi dung˙ cua mot tap ˙ script nào d (nhung tap tin nhu vay có rat nhieu trên ˙´ ˙ ˙ ´ ` ’ ˆ ˆ tin ˜’ ¯ó ˆ ˆ ˆ ’ˆ ˆ ˆ ˙ n se thay dòng d˙`u tiên có dang sau: #!/bin/sh. Dieu này có nghıa là, khi ˙ ˙ `˙ ´ ng), ba ˜ ´ he tho ˜ ¯a ˆˆ ˆ ˆ ¯ˆ ˙ ˙script d ’ thuc hien nhu mot lenh thông thuong, thì /bin/sh se giúp chúng ta ˙ chúng ta goi ’`’ ˜ ¯e ’ ˆ ˆ ’ˆˆ ˙ ˙’ ˙ ´ ˙˙ "thu xep" moi thu. Có the thay the dòng này boi liên ket d´ n bat ky mot chuong trình nào, ´ ´ ¯e ´ ` ˆ ’’ ´’ ˆ ˆ ˆ ˆˆˆ ’’ ˙ tin và thuc hien các câu lenh tuong ung. Ví du, script trên ngôn ngu Perl bat ˙ ´ mà se d c tap ’ ’ ´’ ˘ ˜ ¯o ˆ ˜’ ’ˆ ˆ ˙ ˙ có dang !/bin/perl. Mot chú ý khác là ký ˙tu # dùng d ’ viet loi chú thích ˙ ˙ ˙ ` ¯e ´ `’ ¯a ’’ d ˆ u boi dòng ˆ ˆˆ ’ trong script. Tat ca˙nhung gì d ´’ng sau ký ˙ ’ này d´ n cuoi dòng˙se d ’oc coi là chú thích và bi ´ ’ ˜’ ´ tu ˜ ¯u ’ ¯u ¯e ˆ ˆ ˆ ˙ ´˙ ´’ ˙ ˆ’ ´ ’ qua (tuc là he vo se không xem dòng này là câu lenh). Neu ban muon kiem chung ’˜ bash bo ´’ ˆ ˆ ˆ ˆ lai tác dung cua ký tu ˙ ˙ ´˙ ` ’ ’ này, thì hãy nhap vào dòng lenh mot câu lenh bat ky, và d ˘ t truoc nó ¯a ’´’ ˆ ˆ ˆ ˆ ˆ ˙ lenh) ký tu #, ví˙du "# ls", ban˙se thay rang he vo bo qua câu lenh này. ˙ ˙ ˙ ’ ˙’ ˙ ´` (câu ˆ ˜ˆ˘ ˆ ˆ ’ ’ Chúng ta se dung bài hoc ngan gon ve bash tai d˙ Tat nhiên, còn rat nhieu van d ˆ quan ˙ ˙` ˙ ˘˙ ˙´ ´ ` ´ ˆ ´ ¯e `ˆ` ˜’ ¯ây. ˆ ˆ ˆ ˙m ngoài pham vi cua bài hoc, ví du, quan lý tien trình, lich su câu ˙ ˙ ` ` ´ ’ ’ ’’ trong can xem xét nhung na ˘ ˆ ˆ ’ ˙ mô ta ve thu vien readline, tín hie˙ v.v. . . Các ban se tìm thay thông tin can thiet trong ˙ ˙´ ` ˙´ ` ’ˆ ’ˆ lenh, ˆ u, ˜ ˆ ˆ ˆ ˆ các cuon huong dan ˙ ˙ ˙ ˙ ˜ ´ ˆ khác hoac trên trang man bash. ´’ ˘ ˆ ’ ˙
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Tìm Hiểu Mạng Máy Tính - Hệ Thống Mạng Và Các Giao Thức Mạng
10 p | 290 | 88
-
Giáo trình Kiến trúc máy tính: Phần 1 - ThS. Võ Đức Khánh
38 p | 210 | 68
-
Bài giảng Kiến trúc máy tính: Chương 1 - Lịch sử phát triển của máy tính
20 p | 376 | 59
-
Khám phá lịch sử ngôn ngữ typography: Phần 1
249 p | 201 | 49
-
Khám phá lịch sử ngôn ngữ typography: Phần 2
191 p | 143 | 34
-
Bài giảng Hệ điều hành Linux: Chương 1 - Dzoãn Xuân Thanh
58 p | 246 | 25
-
Các khái niệm cơ bản.
51 p | 134 | 19
-
Tài liệu giảng dạy môn Kiến trúc máy tính: Phần 1 - Trường ĐH An Giang
41 p | 19 | 10
-
Hướng dẫn XML cho người mới học: Phần 1
199 p | 56 | 10
-
Lịch sử và các bản phân phối HĐH Linux từ trước đến nay phần 2
6 p | 80 | 7
-
Lịch sử và các bản phân phối HĐH Linux từ trước đến nay phần 4
6 p | 64 | 6
-
Lịch sử và các bản phân phối HĐH Linux từ trước đến nay phần 3
6 p | 69 | 6
-
Khái quát lịch sử phát triển và các yếu tố, nguyên tắc thiết kế cơ bản của đồ họa quảng cáo
7 p | 18 | 6
-
Lịch sử và các bản phân phối HĐH Linux từ trước đến nay phần 5
6 p | 63 | 5
-
Lịch sử và các bản phân phối HĐH Linux từ trước đến nay phần 1
6 p | 84 | 5
-
Lịch sử và các bản phân phối HĐH Linux từ trước đến nay phần 6
6 p | 47 | 4
-
Lịch sử và các bản phân phối HĐH Linux từ trước đến nay phần 7
6 p | 46 | 4
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn