lap trinh shell

28
Hướng dận lập trình shell trên Linux - Bài 1: Biến và Nhập xuất Đầu tiên bạn phải tạo 1 file text, bạn có thể đặt tên và đuôi file tùy ý (Không để đuôi cũng ko sao) đây sẽ là file chứa nội dung script mà chúng ta sắp viết VD: Các tên sau đều hợp lệ Code: tenfile tenfile.sh tenfile.txt Sau đó, để script có thể thực thi ta cấp quyền cho nó bằng lệnh sau Code: chmod 755 tenfile Để chạy 1 shell script nào đó ta gõ Code: ./tenfile VD: ta có 1 shell script đã đc chmod 755 tại Code: /home/vtlai/shell.sh Để chạy nó ta làm như sau Vào thư mục /home/vtlai Code: cd /home/vtlai Chạy shell Code: ./shell.sh Cú pháp của 1 file shell script như sau: Code: #!/bin/bash Nội dung script trong đó /bin/bash là bộ lệnh mà chúng ta sẽ sử dụng trong script. Thông thường shell chúng ta sử dụng đều là shell bash như trên

Upload: vu-huy-quang

Post on 11-Nov-2014

293 views

Category:

Documents


1 download

TRANSCRIPT

Hng dn lp trnh shell trn Linux - Bi 1: Bin v Nhp xutu tin bn phi to 1 file text, bn c th t tn v ui file ty (Khng ui cng ko sao) y s l file cha ni dung script m chng ta sp vit VD: Cc tn sau u hp l Code:tenfile tenfile.sh tenfile.txt

Sau , script c th thc thi ta cp quyn cho n bng lnh sau Code:chmod 755 tenfile

chy 1 shell script no ta g Code:./tenfile

VD: ta c 1 shell script c chmod 755 ti Code:/home/vtlai/shell.sh

chy n ta lm nh sau Vo th mc /home/vtlai Code:cd /home/vtlai

Chy shell Code:./shell.sh

C php ca 1 file shell script nh sau: Code:#!/bin/bash Ni dung script

trong /bin/bash l b lnh m chng ta s s dng trong script. Thng thng shell chng ta s dng u l shell bash nh trn Cch xut 1 chui ra mn hnh Code:echo "Ni dung chui"

Cch s dng bin Khi gn gi tr cho bin ta s dng tn bin khng c $ u Lu : Du bng phi nm ngay sau tn bin v khng s dng khong trng VD: Code:tenbien="Ni dung"

Khi ly ni dung ca bin ra xut hoc so snh ... ta s dng tn bin c du $ u VD:

Code:tenbien="Dien dan sinh vien CNTT sinhvienit.net"; echo $tenbien

Kt qu: Code:Dien dan sinh vien CNTT sinhvienit.net

Cch nhp 1 chui vo 1 bin Code:read TnBin

Khi chy ti lnh read ny mn hnh s dng li cho chng ta nhp. sau khi bn nhp 1 chui v bm enter th ni dung chui s gn cho bin m ta ghi sau read VD: Code:echo "Vui long nhap vao mot chuoi:" read vtlai echo "Chuoi vua nhap la: $vtlai"

Cch ly kt qu ca 1 lnh, chui lnh a vo bin Code:tnbin=`Lnh cn ly kt qu tr v`

hoc Code:tenbien= $(Lnh cn ly kt qu tr v)

VD: Code:hientai=`date` echo "Hom nay la: $hientai ";

Post only trn sinhvienit.net, copy i u vui lng ghi r ngun http://sinhvienit.net/@forum/threads...-va-nhap-xuat/

Hng dn lp trnh shell trn Linux - Bi 2: Cc php ton s hcKhc vi C v 1 s ngn ng lp trnh khc, vic s dng cc php ton s hc khng n gin l bng cch s dng cc du tng ng (+ - * /) m rm r hn 1 cht Php cng:

n=n+6Code:

n=`expr $n + 6`

hoc Code:n=$(($n + 6))

hoc Code:n=$[ $n + 6 ]

n=n++Code:n=$[ $n + 1 ]

hoc Code:let "n++"

hoc Code:$[ n++ ]

hoc Code:(( n++ ))

Php tr, nhn, chia tng tPost only trn sinhvienit.net, copy i u vui lng ghi r ngun http://sinhvienit.net/@forum/threads...p-toan-so-hoc/

QT4- Lp trnh nhng trn Ubuntu lu ri khng thy anh em trn din n nhc n QT na nh ? Hin ti mnh ang lm mt ti lin qua n truyn video thi gian thc trn my tnh nhng s dng mng addhoc v lp trnh trn QT4. Mnh c rt nhiu iu mun hi v mong c s gp ca anh em. ng thi qua y cng mong mun QT ngy cng pht trin bi qu thc n l mt Platform rt hay. Cc cng c c th snh ngang vi visual. Trc ht mnh xin bt u vo phn ci t v s dng nh s qua nh

ci t QT4 trn ubuntu (10.10) bn c 2 cch : -Th nht ci t trong Applications>Ubuntu Software Center .Bn g Qt vo phn Search v ci t cc phn Qt4 Designer, Qt4 Assistant, Qt4 Linguist, Qt4 Settings v cui cng l IDE ring ca QT QT Creator -Th hai bn c th vo trang ch ca QT v down b ci y ( gi SDK ) : Download Qt, the cross-platform application framework Qt - A crossplatform application and UI framework Sau khi bn down gi SDK ( c ui l .run ) th tin hnh ci t ,bn chuyn gi ny vo home, m Terminal v g : chmod u+x Qt_SDK_Lin32_offline_v1_1_3_en.run g tip ./Qt_SDK_Lin32_offline_v1_1_3_en.run Theo mnh nn ci theo cch th nht. Bi bn ubuntu 10.10 tr i h tr y cho Qt. Cn nu bn dng phin bn thp hn 10.10 th nn ci theo cch th 2. Tip theo mnh xin lm mt v d nho nh vi Qt. Load nh t my tnh v hin th Bc 1: To project ca Qt. Bn vo Applications >Programing >QT Creator .Giao din ca Qt Creator hin ln nh sau

Bn chn Create Project Tip theo bn chn loi project, y mnh s dng l Qt C++ Project> Qt Gui Application. Cui cng mnh n choose v ca s t tn project hin ra

Sau khi t tn bn chn Next th Qt s yu cu bn t tn cho class khi u ca chng trnh ( y ch l mt th tc, bn c th t tn ri khi vit chng trnh khng s dng class ny cng chng sao ).

Trong vd ny mnh t tn Class l ShowImage.Chn Base class l QWidget (lp giao din).Cui cng n Finish bt u lp trnh. Mnh s ni qua v cc thnh phn ca mt lp trong QT Mt lp trong Qt s bao gm 3 thnh phn l : Header file ( ui .h ), thnh phn ny c chc nng cha cc hm, cc bin ton cc, con tr, hoc cp pht b nh cn khai bo s dng trong class. Thnh phn th hai l Source file ( ui .cpp ), thnh phn ny cha cc nh ngha hm, chc nng cc hm trong class. y l thnh phn quan trng nht trong Qt.

Thnh phn th 3 l Form file ( ui .ui ). Ty tng class v cch chn ca ngi s dng m thnh phn ny c trong chng trnh. Thnh phn ny gip ngi s dng to giao din d dng hn thng qua ko th ng thi tng tc vi cc thnh phn ca giao din ( button, label .... ) kh d dng. Nu khng s dng thnh phn ny bn cng hon ton c th code giao din trong file.cpp. Tt nhin khng th thun tin v d qun l nh Form. Bc 2 :Sau khi to project th chng ta bt u lp trnh thi Trc tin mnh vo form. Trong ct Project bn click vo showimage.ui Trong form ny mnh ko th to ra 2 ci label vi tn l lbl_Hello ( Ci ny dng hin th ch "Hello" ) v lbl_Image ( Ci ny l show nh ).

Sau khi to xong mnh quay v showimage, vit ch "Hello" bng cch s dng hm setText() ui->lbl_hello->setText("Hello"); hin th nh th trc tin bn cn phi to mt bit kiu QImage ( y l mt kiu bin ca Qt x l nh) v load nh t cng ln Qimage image("qt4.png"); Ch bn phi nh trong th mc build project nh. y ca mnh l th mc Home/test-build-desktop

Tip theo hin th hnh nh th ta cn chuyn QImage sang lp QPixmap sau hin th cc Pixmap trn label (lbl_Image) QImage img("qt4.png"); QPixmap pixmap ; pixmap=pixmap.fromImage(img); ui->lbl_Image->setPixmap(pixmap); n y bn c th xem kt qu ca mnh ri

Mt S bi tp Lp trnh shell a) Lm vic vi Text Bi 1: Vit 1 chng trnh Shell c tng dng trong 1 file vn bn. Gia mi ln hin th dng text th c 1 cu hi t Shell: bn c mun c dng k tip ko ? y/n nu tr li l y hoc Y th in dng k tip, trong trng hp ngc li th kt thc chng trnh c.

M: #!/bin/sh echo e nhap ten file: read filename if [ ! f $filename ]; then echo $filename not exists exit 1 fi answer= count=0 numlines=`wc l $filename|sed s/^ *//|cut d f 1` echo so dong: $numlines while [ $answer!=n] do echo e tiep tuc(y/n)? read answer if [ answer = y ]; then echo doc het file rui exit 0 fi count=$(($count+1)) sed n ${count}p $filename done exit 0 Bi 2: Vit 1 dng lnh cho php c 3 dng u tin trong 1 file vn bn m khng c dng bt c vng lp no

M: sed n 1,3p $filename Bi 3: Vit 1 chng trnh trong Shell sao cho vi tham s th nht l tn file text v n s in ra mn hnh ni dung file ny, nhng vi tt c k t u vit hoa

M: #!/bin/sh echo e nhap ten file: read filename if [ ! f $filename ]; then echo $filename not exists exit 1 fi echo file sau khi chuyen doi: tr [a-z] [A-Z] n - Minh ha cc cu trc while do done, v cch s dng [], $(()). - Tp tin tong1.sh #!/bin/sh echo Chuong trinh tinh tong 1- $1 index=0 tong=0 while [ $index -lt $1 ] do index=$(($index + 1)) tong=$(($tong + $index)) done echo "Tong 1-$1= $tong" exit 0 - Chy chng trnh : chmod a+x tong1.sh ./tong1 100 ================================================== ============================================= 6.2. Chng trnh tnh giai tha ca mt s - Minh ha cc cu trc while do done, v cch s dng [], $(()). - Tp tin giaithua.sh #!/bin/sh echo Chuong trinh tinh $1! index=0 gt=1 while [ $index -lt $1 ] do

index=$(($index + 1)) gt=$(($gt * $index)) done echo "$1!= $gt" exit 0 - Chy chng trnh : chmod a+x giaithua.sh ./giaithua 5 ================================================== ====================================== 6.3. Chng trnh m s dng ca mt tp tin - Minh ha cc cu trc if then fi, while do done, v cch s dng [], $(()). - Tp tin demdong.sh #!/bin/sh echo Chuong trinh dem so dong cua tap tin $1 { n=0 while read line - 22do n=$(($n + 1)) done echo So dong cua tap tin $1 la : $n }