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

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

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

Thông tin tài liệu

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 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]’ <$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 ] 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 . 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. 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ố. 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.

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

Từ khóa liên quan

Mục lục

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

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan