BÀI TẬP SHELL SCRIPT.
1 _ Nhập vào số tự nhiên N, in tất cả các số từ 1 đến N
#!/bin/bash
echo “Nhap so N”
read N
for ($i=1 ; $i<=N ;$ i++)
do
echo "i"
done
2 – Chương trình tính tổng các số từ 1 đến N
file 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
1
1
3 – Tính tổng N!
Tập tin giaithua.sh
#!/bin/bash
echo “Chuong trinh tinh tong_$1!”
index=0
tong=0
gt=1
while[ $index -lt $1 ]
do
index=$(($index + 1))
gt=$(($gt * $index))
tong=$(($tong + $gt))
done
echo "$1!= $gt"
echo "Tong 1-$1= $tong"
exit 0
2
2
4 – Viết chương trình tổng các số chẵn/lẻ
#!/bin/bash
echo “Nhap so n”
read n
s1=0;
s2=0;
for(i=0 ; i<=n ; i++)
do
if (($i % 2==0))
then
s1=$(($s1+$i))
else
then
s2=$(($s2+$i))
fi
done
3
3
5 – Viết chương trình tính tổng các số chẵn/lẻ chia hết cho 2, 4 hoặc 3,5
#!/bin/bash
echo “Nhap n”
Read n
s1=0
s2=0
for($i=0 ; $i<=n ; $i++)
do
if (($i % 2==0 && $i % 4==0))
then
s1=$(($s1+$i))
elif (($i % 3==0 && $i % 5==0))
then
s2=$(($s2+$i))
fi
done
6 – Giải và biện luận phương trình bậc nhất
#!/bin/bash
echo “Nhap so a”
read a
echo “Nhap so b”
read b
if (($a==0 && $b==0))
then
echo “Phuong trinh co vo so nghiem”
elif (($a!=0 && $b!=0))
then
x=$((-$b/$a))
echo “Phuong trinh co nghiem $x”
4
4
else
echo “Phuong trinh vo nghiem”
fi
exit 0
7 – Giải và biện luận phương trình bậc hai
!#/bin/bash
echo “Nhap a”
read a
echo “Nhap b”
read b
echo “Nhap c”
read c
delta=$(($(b*b) – 4*$a*$c))
if (($delta <0))
then
echo “Phuong trinh vo nghiem”
elif (($delta =0))
then
x=$((-$b/$(2*a)))
echo “Phuong trinh co nghiem kep $x”
else
then
x1=$(( (-$b+sqrt($delta) / $(2*a))))
x2=$(( (-$b - sqrt($delta) / $(2*a))))
echo “Phuong trinh co 2 nghiem $x1,$x2”
fi
exit 0
5
5
8 – Tìm hai số lớn nhất và nhỏ nhất trong mảng vừa nhập
#/bin/bash
# nhập đọc một mảng
function input()
{
echo -n "n= "
read n
for ((i=0; i
do
echo -n "a[$i] " =
read a[$i]
done
}
#so sánh hai số lấy số max
function max2nums()
{
if [ "$1" -gt "$2" ]; then
max1=$1
echo $1
else
max1=$2
echo $2
fi
return $max1
}
#tìm số lớn nhất trong mảng
function maxs()
{
max=${a[0]}
for ((i=1; i
do
max=$(max2nums ${a[$i]} $max)
done
echo "max = $max"
}
input
maxs.exit$?
6
6
9 – Đếm số dòng trong một đoạn văn
#!/bin/bash
echo “Chuong trinh dem so dong cua doan van”
{
n=0
while read line
do
n=$(($n + 1))
done
echo “So dong cua doan van la: $n”
}
exit 0
10 – Đếm số từ trong một đoạn văn
#!/bin/bash
echo “Chuong trinh dem so tu cua doan van”
{
n=0
while read line
do
for wd in$line
do
n=$(($n + 1))
done
done
echo “Tong so tu cua doan van la: $n”
}
exit 0
7
7
11.shell.
groupadd CN3
useradd -G CN3 -d
/home/BAITHI -m Vinh passwd -du Vinh su Vinh
mkdir -p Tailieu/Hoa/Voco
mkdir -p Tailieu/Hoa/Huuco
mkdir -p Tailieu/Ly
cd Tailieu/Hoa/Huuco
touch Bai1.doc
touch Bai2.doc
a)
b)
// So dong
wc -l Bai1.doc
wc -l Bai2.doc
// So tu
wc -w Bai1.doc
wc -w Bai2.doc
// Kich thuoc
wc -c Bai1.doc
wc -c Bai2.doc
cp Bai1.doc .
c) cat Bai1.doc Huuco/Bai2.doc >
../Ly/vatly.doc
d)
cd ../Ly
head -8 vatly.doc > temp.txt
tail -4 temp.txt > view.txt
rm temp.txt
e) mount /dev/cdrom /mycdrom
8
8
mount /dev/hdc2 /mydir
f) find /mycdrom -size +500k –
mtime -4 unmount /mycdrom
unmount /mydir
eject
g) chmod u+rx-w vatly.doc
chmod o+r-wx vatly.doc
chmod 544 vatly.doc
9
9