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
• 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