1. Trang chủ
  2. » Thể loại khác

Một Số bài tập Lập trình shell ppt

3 1,4K 26

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 3
Dung lượng 0,98 MB

Nội dung

Một Số bài tập Lập trình shella Làm việc với Text Bài 1: Viết 1 chương trình Shell đọc từng dòng trong 1 file văn bản.. Giữa mỗi lần hiển thị dòng text thì có 1 câu hỏi từ Shell: “bạn c

Trang 1

Một Số bài tập Lập trình shell

a) Làm việc với Text

Bài 1: Viết 1 chương trình Shell đọc từng dòng trong 1 file văn bản Giữa mỗi lần hiển thị dòng

text thì có 1 câu hỏi từ Shell: “bạn có muốn đọc dòng kế tiếp ko ? y/n” nếu trả lời là “y” hoặc

“Y” thì in dòng kế tiếp, trong trường hợp ngược lại thì kết thúc chương trình đọ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

Bài 2: Viết 1 dòng lệnh cho phép đọc 3 dòng đầu tiên trong 1 file văn bản mà không được dùng

bất cứ vòng lặp nào

Mã:

sed –n 1,3p $filename

Bài 3: Viết 1 chương trình trong Shell sao cho với tham số thứ nhất là tên file text và nó sẽ in ra

màn hình nội dung file này, nhưng với tất cả ký tự đều viết hoa

Trang 2

#!/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]’ <$filename

exit 0

Bài 4: Viết 1 chương trình Shell chỉnh sửa văn bản sao cho nếu trên 1 dòng mà

có nhiều hơn 2

khoảng trắng liền nhau thì được thay thế bằng 1 khoảng trắng

Mã:

tr –s ' ' ' ' <$filename >$filename

Post added at 08:50 PM Previous post was at 08:47 PM

-b)Làm việc với các tham số

Bài 1: Viết chương trình Shell liệt kê các tham số truyền vào chương trình theo từng dòng với cú

pháp: “day la tham so thu N va co ten la NNNN” bằng các cách sau:

• Dùng vòng lặp FOR

• Dùng vòng WHILE và lệnh SHIFT

• Dùng vòng WHILE và không dùng lệnh SHIFT

Mã:

#!/bin/sh

#while + SHIFT:

count=0

while [ “$#” –ne 0 ]

do

echo “day la tham so thu $count: $1”

count=$(($count + 1))

shift

done

#WHILE without SHIFT:

count=1

total=$(($#+1))

while [ “$*” –ge 0 ]

Trang 3

do

echo –n “day la tham so thu $count: ”

eval echo \$$count

count=$(($count+1))

done

#for:

count=1

for arg in “$*”

do

echo “day la tham so thu $count: $arg”

count=$(($count + 1))

done

Bài 2: Viết chương trình Shell phân tích các tham số và các đối số truyền vào tương ứng với

tham số đó Giả sử chương trình myshell có thể nhận 4 tham số là a,b,c,d

nhưng chỉ có tham số c

là có đối số truyền vào Khi gõ câu lệnh trong Shell: myshell –abc argument –d other_argument

thì với tham số c ta có đối số là argument, ngoài ra chương trình còn 1 đối số là other_argument

Mã:

while getopts abc:d option

do

case "$option"

in

a) echo “co tham so a”;;

b) echo “co tham so b”;;

c) echo “co tham so c, doi so la $OPTARG”;;

d) echo “co tham so d”;;

\?)echo “ tham so nay khong hop le”

esac

done

while [ “$OPTIND” –le “$#” ]

do

echo –n “tham so tu do: “

eval echo \$$OPTIND

shift

done

Ngày đăng: 18/06/2014, 18:20

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w