unix shell
Nguyn Thnh Long ntlong@fit.hcmus.edu.vn !"#!$ %#&"' ()&*+& ()&#,! "/&01(! 234 -56!$"7!48 934:&56!$"7!$;# '$<;!$5=>?@!$3*!$A!BCD!$! :*E!$?@!$FC;G;GCG&G1G&3!##$! H40;!$>?@!$F&#I92JAA ;4*4K&0L!&M;4:"(!"#!$N&';O? P QN1R0:!$&# !GS&0*#$!TS0:!$S&1 #$!3#4,UV "#$%!&'QN1R0:!$&#()* !GS&0*#$! "#$%!&QN1R0:!$&#W!$!";&1E!$'X3#$! "#$%!&'* QN?+!?Y'1#,1Z#$! +,-.-/ [\!$"#!$]'"7!301(!4E "5=!$S&T!"#!4!V ,!$,"L&#C !F0%')%120% "UB.$,"L&M;C !F30%')%1 3245)&%4 3&3 +,-.-/ ^ !Q1_&,&C !0`05a&0L!!$b; )!QMUC ! 5 Q B'#" C ! "R 3! C ! 4E "5=!$ T&c $, "L "#!$ &,& 3 '"#&1,&V -/6789: d e1(!4E"5=!$S&! :*C !4E"5=!$E!$?@!$F 2fJ54@ 92JAA&56!$"7!!% gh205=!$?8!0(74&,&NS& 9J_!"#$! J1("4!;!% [i9gAhj1;C,#(!L&#Hk!?#O g9?.!l&?m!$! Ah!$E!!$<!% -/6789: I_!&M;&"'&56!$"7! IIgi[&M;!% In4`"XTB&#?V&M;!N#"$"#!?!$;U"5&0c Io4`"X&M;!C;&1$"#!?!$;U"5&0c 8;7 p qr!CX!T5=!$&c's!4R":!$tV&);&,&!T!3&56!$"7!V e5a&E!$?L&CR -c(05a&$+"#!$&u!&"'1,& ;4*05a&"U!"_!?m!$! [m!$0s5=!$&c?%!$voC!C; Ghi chú: [\!$?.v <=>?.#4 I&;w#t voC!C; # This is a comment: simple hello shell script &#xJ!"U#"!;4Fx ";?!;4 #I!;4G;;!&?;Uox 3#&#!& C;Ft#tFg"4#!?!? [...]... $num + 2” done 10/8/2012 21 QUẢN TRỊ MẠNG - 503018 LOGO CÁC ĐIỀU KIÊÔN KHÁC BREAK – thoát khỏi vòng lặp CONTINUE – bỏ qua phần còn lại của vòng lặp EXIT – thoát khỏi shell script RETURN – trở về từ hàm hoặc shell script if [ $# -lt 2 ]; then echo “Usage: `basename $0` source dest” echo exit 1 fi 10/8/2012 22 QUẢN TRỊ MẠNG - 503018 LOGO HÀM Khai báo hàm func_name() { statements;... các khoảng trắng Ví dụ: lấy danh sách các user trong group “root” cat /etc/group | grep ^root | awk -F”;” ‘{ print $4 }’ | tr “,” “ “ 10/8/2012 32 QUẢN TRỊ MẠNG - 503018 LOGO BÀI TÂÔP SHELL 1 Viết chương trình shell đơn giản cho phép tạo 1 thư mục ngoài “Desktop” 2 Viết chương trình nhâăp vào 1 số nguyên n, kiểm tra xem n có phải là số nguyên tố hay không ? 3 Viết chương trình nhâăp vào số nguyên... QUẢN TRỊ MẠNG - 503018 LOGO ĐỌC NHIỀU DÒNG cat $FILENAME while read LINE | while read LINE do do echo “$LINE” echo “$LINE” : : done < $FILENAME done 10/8/2012 29 QUẢN TRỊ MẠNG - 503018 LOGO DEBUG SHELL Dùng lệnh sh -x , ví dụ: sh -x SoNT.sh 10/8/2012 30 QUẢN TRỊ MẠNG - 503018 LOGO CẮT CHUỖI - CUT Cú pháp: cut -d -f Ví dụ: Có chuỗi input 1;2;3;4;5;6 . 3 '"#&1,&V -/6789: d e1(!4E"5=!$S&! :*C !4E"5=!$E!$?@!$F 2fJ54@ 92JAA&56!$"7!!% gh 2 05=!$?8!0(74&,&NS& 9J_!"#$! J1("4!;!% [i9gAhj1;C,#(!L&#Hk!?#O g9?.!l&?m!$! Ah!$E!!$<!% -/6789: I_!&M;&"'&56!$"7! IIgi[&M;!% In4`"XTB&#?V&M;!N#"$"#!?!$;U"5&0c Io4`"X&M;!C;&1$"#!?!$;U"5&0c 8;7 p qr!CX!T5=!$&c's!4R":!$tV&);&,&!T!3&56!$"7!V e5a&E!$?L&CR -c(05a&$+"#!$&u!&"'1,& ;4*05a&"U!"_!?m!$! [m!$0s5=!$&c?%!$voC!C; . QN?+!?Y'1#,1Z#$! +,-.-/ [!$"#!$]'"7!301(!4E "5=!$S&T!"#!4!V ,!$,"L&#C !F0%')%1 20 % "UB.$,"L&M;C !F30%')%1 3 24 5)&%4 3&3 +,-.-/ ^ !Q1_&,&C. [!$?.v <=>?.#4 I&;w#t voC!C; # This is a comment: simple hello shell script &#xJ!"U#"!;4Fx ";?!;4 #I!;4G;;!&?;Uox 3#&#!& C;Ft#tFg"4#!?!? <=>?.#4 @%ABg"4#!?!? I&4#?yB#t It#t J!"U#"!;4F $U!z;!h 2 #$U!z;!hG;;!&?;Uo 7,6C<D78= ;4*05a&"UB.E!${;L"u&M;!c ;4*L"u&c(05a&$,!%CD!$!|} -,&C