Code shell full cho các bạn tham khảo và tìm hiểu về shell, muốn học lập trình shell một cách tốt, hãy chọn tài liệu này, rất hữu ích cho các bạn mới bắt đầu. Nào hãy tải về và học nhéChúc bạn thành công trong việc học về shell
Trang 1Bài 1: Viết chương trình tính diện tích tam giác bằng công thức herong
S= p(p−a)(p−b)(p−c) với p=(a+b+c)/2
* Code:
#!/bin/bash
echo "Chuong trinh tinh dien tich tam giac"
echo "Nhap canh a: "
p=$( echo "scale=2; ( ($a+$b+$c)/2)" | bc )
echo "nua chu vi cua tam giac la: $p"
dt=$( echo "scale=2; (sqrt($p*($p-$a)*($p-$b)*($p-$c)))" | bc )
echo "Dien tich tam giac la: $dt"
Trang 2x=$( echo "scale=2; (-$b/$a)" | bc)
echo "nghiem phuong trinh la x=$x"
fi
exit 0
*.Kếtquả
Trang 3Bài 4: Giải phương trình bậc hai ax+bx+c=0 Xét cả trường hợp a=0.
# Phuong trinh bac hai
echo " Pt bac hai"
x=$( echo "scale=2; (-$b/$((2*$a)))" | bc )
echo "Pt co nghiem kep x1=x2= $x"
else
x1=$( echo "scale=2; ((-$b+ (sqrt($delta))))/$((2*$a))" | bc )
x2=$( echo "scale=2; ((-$b-(sqrt($delta))))/$((2*$a))" | bc )
echo " PT co hai nhiem x1=$x1 va x2=$x2"
Trang 5echo " Chuong trinh tinh cac so le nho hon n"
echo " Moi ban nhap n : "
Trang 6*.Kết quả
Bài 7: Tính chu vi và diện tích hình tròn bán kính r
*.Code
#!/bin/bash
echo "Chuong trinh tinh dien tich va chu vi hinh tron"
echo "Nhap ban kinh r = "
read r
pi=3.1459
cv=$( echo "scale=2; (2*$pi*$r)" | bc )
dt=$( echo "scale=2; ($pi*$r*$r)" | bc )
echo "Duong tron ban kinh r = $r co chu vi $cv va dien tich $dt"
echo " CHUONG TRINH TIM UCLN VA BCNN"
echo " Moi ban nhap hai so "
Trang 8kq=$( echo "scale=2 ; ($sum/$n)" | bc )
echo "Ket qua : $kq"
exit 0
Trang 9echo " CHUONG TRINH TINH TIEN KARAOKE "
echo "Gio vao a: "
echo "Sau 18h=$sau"
echo "Tong so tien tra: $(($truoc+$sau))"
fi
fi
exit 0
*.Kết quả
Trang 10Bài 12: Viết chương trình tính s=1+1/2+1/3+1/4+…+1/n (n>0)
Trang 12Bài 14: Nhập vào 1 số n, kiểm tra n có phải là số đối xứng hay không?
Trang 131)echo "Chao buoi sang";;
2)echo "Chao buoi chieu";;
3)echo "Chao buoi toi";;
*)echo "Ban chon sai buoi roi";;
esac
done
exit 0
*.Kết quả
Trang 14Bài 17 Nhập mảng một chiều gồm n phần tử,và tìm max ,min của các phần tử trong mảng đó.
Trang 16echo -n "Nhap so luong phan tu cua mang "
Trang 174)echo " thang $thang cua nam $nam co 30 ngay" ;;
6)echo " thang $thang cua nam $nam co 30 ngay" ;;
9)echo " thang $thang cua nam $nam co 30 ngay" ;;
11)echo " thang $thang cua nam $nam co 30 ngay";;
1)echo " thang $thang cua nam $nam co 31 ngay" ;;
3)echo " thang $thang cua nam $nam co 31 ngay" ;;
5)echo " thang $thang cua nam $nam co 31 ngay" ;;
7)echo " thang $thang cua nam $nam co 31 ngay" ;;
8)echo " thang $thang cua nam $nam co 31 ngay";;
10)echo " thang $thang cua nam $nam co 31 ngay" ;;
12)echo " thang $thang cua nam $nam co 31 ngay" ;;
2)if [ $(($nam%100)) -ne 0 ] && [ $(($nam%4)) -eq 0 ]
then
echo " Thang $thang nam $nam co 29 ngay"
Trang 19then echo " $n khong phai La so nguyento" ;break;
Trang 20echo "Chuong trinh tim dong dai nhat trong mot file"
echo "nhap ten file:"
read file
Trang 21if [ $n -eq ${S1[$j]} ];then
kt=1fi
Trang 22if [ $kt -eq 0 ];then
S1[${#S1[*]}]=$nfi
do
if [ $n -eq ${S2[$j]} ];then
kt=1fi
done
if [ $kt -eq 0 ];then
S2[${#S2[*]}]=$nfi
Trang 23for j in `seq 0 $((${#S1[*]}-1))`;
do
if [ ${S[$j]} -eq ${S2[$i]} ];then
kt=1fi
done
if [ $kt -eq 0 ];then
S[${#S[*]}]=${S2[$i]}
fidone
echo -n "Tap hop S=S1 v S2: "
do
if [ ${S1[$j]} -eq ${S2[$i]} ];then
kt=1fi
done
if [ $kt -eq 1 ];then
S[${#S[*]}]=${S2[$i]}
fidone
echo -n "Tap hop S=S1 ^ S2: "
do
Trang 24if [ ${S2[$j]} -eq ${S1[$i]} ];then
kt=1fi
done
if [ $kt -eq 0 ];then
S[${#S[*]}]=${S1[$i]}
fidone
echo -n "Tap hop S=S1 - S2: "
Trang 25Bài 26 : Viết chương trình in ra các biển số xe có 4 chữ số mà có tổng các chữ số bằng 9
Bài 27 Nhập vào một mảng gồm n phần tử số nguyên, và kiểm tra xem có bao nhiêu
số hoàn thiện có trong mảng đó Biết số a là số hoàn thiện nếu a có tổng các ước số
nhỏ nó bằng nó Ví du: 6=1+2+3 nên 6 là số hoàn thiện
Trang 26echo -n "Mang da cho : "
for ((i=1; i<=n; i++))
Trang 27for ((i=1; i<=n; i++))
do
sohoanthien ${a[$i]}
if [ $? -eq 0 ] then
echo -n " ${a[$i]} "
dem=$(( $dem +1 ))fi
Trang 28do sum=$( echo "scale=2 ; ($sum+1/$i)" | bc )
tg=$( echo " scale=2; (1/$mau)" | bc )
sum=$( echo "scale=2; ($sum+ $tg)" | bc )
Trang 29mau=$(echo "scale = 4; ($mau * $i * 2 * (($i * 2) + 1))" | bc)
tong=$(echo "scale = 4; ($tong + ($tu / $mau))" | bc)
Trang 31Bài 32 :Viết chương trình nhập vào ngày tháng của năm 2011 rồi in ra ngày
đó là ngày thứ mấy
*.Code
#!/bin/sh
clear
echo "Chuong trinh in ra thu khi biet ngay thang cua nam 2011"
echo -n "Nhap ngay: "
read d
echo -n "Nhap thang: "
read m
y=2011
if [ $(( $y%400 )) -eq 0 ] ; then
num=29; elif [ $(( $y%4 )) -eq 0 ] && [ $(( $y%100 )) -ne 0 ]
Trang 32thennum=29else
0) echo "Ngay $d thang $m nam $y la Thu Sau" ;;
1) echo "Ngay $d thang $m nam $y la Thu Bay" ;;
Trang 332) echo "Ngay $d thang $m nam $y la Chu Nhat";;
3) echo "Ngay $d thang $m nam $y la Thu Hai" ;;
4) echo "Ngay $d thang $m nam $y la Thu Ba" ;;
5) echo "Ngay $d thang $m nam $y la Thu Tu" ;;
6) echo "Ngay $d thang $m nam $y la Thu Nam" ;;
2 ) if [ $(( $y%$k )) -eq 0 ] ; then
num=29; elif [ $(( $y%$n )) -eq 0 ] && [ $(( $y%$p )) -ne 0 ]
then
Trang 34num=29else
echo "Chuong trinh in tam giac can dung ki tu *"
echo -n "Nhap chieu cao tam giac "
Trang 35echo "TIM SO LON NHAT TRONG 3 SO NHAP VAO"
echo "Nhap a="
Trang 37Bài 37:Chương trình tính chu vi và diện tích hình chử nhật:
Code:
#!/bin/sh
echo "TINH CHU VI VA DIEN TICH HINH CHU NHAT"
echo -n "Nhap chieu dai hinh chu nhat: "
read a
echo -n "Nhap chieu rong hinh chu nhat: "
read b
echo "Chu vi la: $((2*$a+2*$b))"
echo "Dien tich la: $(($a*$b))"
Trang 38echo "TIM UOC CHUNG LON NHAT "
echo -n "Nhap vao a="
Trang 39Bài 40:chương trình tìm bội chung nhỏ nhất
*.Code:
#!/bin/sh
echo "TIM BOI CHUNG NHO NHAT"
echo -n "Nhap vao a="
Trang 40x=$( echo "scale=2; (-$b/$a)" | bc)
echo "nghiem phuong trinh la x=$x"
fi
exit 0
*.Kết quả:
Trang 41Bài 42:chương trình kiểm tra số có phải là nguyên tố hay không
Trang 42Bài 43:chương trình tìm số trung gian của ba số nhập vào:
*.Code:
#!/bin/sh
echo "TIOM SO TRUNG GIAN CUA 3 SO"
echo -n "Nhap vao a="
echo "CHUONG TRINH KIEM TRA SO CHINH PHUONG"
echo -n "Nhap vao n="
Trang 44echo "Nhap gia tri cac phan tu cua mang:"
for ((i=0; i<n ;i++))
Trang 45for ((i=0; i<len; i++))
echo "Phan tu lon nhat cua mang la:A[$k]= $max"
echo "Phan tu nho nhat cua mang la:A[$m]= $min"
Trang 48echo "nhap mang 1:"
for ((i=1; i<=n; i++))
do
echo -n "nhap a[$i]"
read a[$i]
done
echo "nhap mang 2:"
for ((i=1; i<=n; i++))
Trang 49for ((i=1; i<=n; i++))
do c[$i]=$(( a[$i] + b[$i]))
Trang 50echo "IN RA DAY SO CHINH PHUONG"
echo -n "Nhap vao n:"
Trang 51Bài 54:Chương trình nhập một số và in ra hang trăm,chục,đơn vị của số đó
echo "chuong trinh tinh luy thua cua mot so cho truoc voi so mu cho truoc"
echo -n "nhap so can tinh"
read a
echo -n "nhap mu"
Trang 52echo "chuong trinh doi sang so nhi phan"
echo "nhap so can doi"
Trang 55Bài 60 : Tính chu vi của một tam giác
Trang 56echo "messege : $myvar"
echo 'messege : $myvar'
echo "messege : \$myvar"
echo Enter some text
Trang 58echo " -dien tich hinh chu nhat -"
Trang 59Bài 67: Viết chương trình tính diện tích và thể tích hình cầu khi biết bán kính
s=$(echo "scale = 3;4*$pi*$r*$r"|bc)
echo "Dien tich hinh cau S=$s"
v=$(echo "scale = 3;4*$pi*$r^3/3"|bc)
echo "The tich hinh cau V=$v"
echo " -kiem tra hoc luc -"
echo -n "nhap diem : "
read diem
if [ $(($diem)) -lt 5 ];then
echo "xep loai : kem"
elif [ $(($diem)) -lt 7 ];then
echo "xep loai : trung binh"
elif [ $(($diem)) -lt 8 ];then
Trang 60echo "xep loai : kha"
elif [ $(($diem)) -lt 9 ];then
echo "xep loai : gioi"
"0") echo " Ngay $ngay thang $thang nam $nam la chu nhat ";;
"1") echo " Ngay $ngay thang $thang nam $nam la thu 2";;
"2") echo " Ngay $ngay thang $thang nam $nam la thu 3";;
"3") echo " Ngay $ngay thang $thang nam $nam la thu 4";;
"4") echo " Ngay $ngay thang $thang nam $nam la thu 5";;
"5") echo " Ngay $ngay thang $thang nam $nam la thu 6";;
"6") echo " Ngay $ngay thang $thang nam $nam la thu 7";;
esac
exit 0
Trang 61"add") echo "Tong cua $a va $b la `expr $a + $b`";;
"sub") echo "Hieu cua $a va $b la `expr $a - $b`";;
"mul") {
tich=$a*$b
echo "Tich cua $a va $b la $tich"
};;
"div") echo "Thuong cua $a va $b la `expr $a / $b`";;
"mod") echo "So du cua $a va $b la `expr $a % $b`";;
Trang 62echo -e "\nPress Enter to continue "
Trang 63echo "so nho nhat: $min"
echo "so lon nhat: $max"
trunggian=`expr $a + $b + $c - $max - $min`
echo " So trung gian cua 3 so $* la : $trunggian"
echo " Chuong trinh tao thu muc -"
echo "Nhap ten thu muc can tao:"
Trang 64Bài 73: Viết chương trình xác định là tam giác gì khi cho biết độ dài 3 cạnh
Trang 65"1") echo " $* la 3 canh cua tam giac can";;
"2") echo " $* la 3 canh cua tam giac deu ";;
"3") echo " $* la 3 canh cua tam giac vuong ";;
"4") echo " $* la 3 canh cua tam giac vuong";;
"5") echo " $* la 3 canh cua tam giac vuong";;
*) echo " $* la 3 canh cua tam giac thuong";;
echo -n "Nhap a: ";read a
echo -n "Nhap b: ";read b
echo -n "Nhap c: ";read c
if [ $a = 0 ] && [ $b = 0 ] && [ $c = 0 ]
then
echo "Xin moi nhap lai he so cua bat phuong trinh"
Trang 67echo "nghiem cua bat phuong trinh x>$x1"
echo "Trung binh cong= $(echo "scale = 4;$s/$n"|bc)"
echo "Trung binh tich= $(echo "scale = 4;$t/$n"|bc)"
exit 0
Trang 68*Kết quả
Bài 77: Viết chương trình tìm file trong linux
*Code
#!/bin/bash
echo " Chuong trinh tim file trong linux "
echo -n "nhap ten file: "
read name
if [ -f $name ]
then
echo -n "$name co ton tai"
echo -n "Duong dan : $name "
Trang 69echo -n "nhap so a="
echo " Chuong trinh kiem tra 1 so co thuoc day fibonaci hay ko "
echo -n "Nhap a="
Trang 70echo " -Chuong trinh ktra phai so hoan hao hay ko ? "
echo "Nhap so a="
if [ $k -eq 0 ]
then
s=$(($s + $i))fi
done
if [ $s -eq $a ]
then
Trang 71echo "$a la so hoan thien"
echo " Chuong trinh kiem tra so am hay la so duong "
echo -n "Nhap a="
read a;
if [ $a -lt 0 ]
then echo "$a la so nguyen am"
else echo "$a la so nguyen duong"
fi
exit 0
* Kết quả
Trang 72Bài 82:Viết chương trình xác nhận mã cá nhân
*Code
#!/bin/bash
echo " Chuong trinh ktra ma ca nhan "
echo -n "Enter password"
read trythis
while [ "$trythis" != "phatbk" ];do
echo "Sorry, try again"
Trang 75Bài 86: Chương trình chuyển số từ thập phân sang bát phân
Trang 76Bài 87: Chương trình demo cách sử dụng lệnh case:
*.Code:
#! /bin/bash
echo "Chuong trinh demo cach su dung lenh case"
echo "Nhap mot so duong bat ky tu 2 den 8"
"8" ) echo "Chu nhat";;
* ) echo "So vua nhap khong hop le";;
echo "Chuong trinh demo cach su dung lenh for"
echo "Nhap mot so chuoi cac so, moi so cach nhau ki tu trang"
Trang 77*.Kết quả
Bài 89: Chương trình demo sử dụng lệnh if:
*.Code:
#! /bin/bash
echo "Chuong trinh demo cach su dung lenh if else"
echo "Nhap mot so duong bat ky"
read n
if [ $n -lt 0 ]; then
echo "So vua nhap khong hop le "
elif [ $n -le 10 ];then
echo "So vua nhap thuoc khoang [0 10]"
elif [ $n -le 20];then
echo "So vua nhap thuoc khoang [10 20]"
fi
exit 0
Trang 78*.Kết quả
Bài 90: Chương trình demo sử dụng lệnh while
*.Code:
#! /bin/bash
echo "Chuong trinh demo cach su dung lenh while"
echo "Nhap mot so n > 0"
read n
count=0
echo "Cac so tu nhien tu 1 den n"
until [ $count -eq $n ];do
Trang 79Bài 91: Chương trình tính n giai thừa:
Trang 81break else
i=$(($i+1)) fi
done
if [ $i -le $m ]
then
return 0 else
return 1 fi
Trang 82ds="$ds $i"
fi i=$(($i+1)) done
echo "Danh sach so chan: "
echo $ds
fi
exit 0
Trang 83return 0
}
echo "Liet ke so chinh phuong tu 0 den n"
echo "Nhap mot so duong bat ky"
echo "Danh sach so chinh phuong: $ds"
fi
exit 0
Trang 84echo "Chuong trinh kiem tra nam nhuan"
echo "Nhap mot nam bat ky n= ?"
Trang 85Bài 98 : Chương trình nối 2 xâu:
*.Code:
#! /bin/sh
echo "Chuong trinh noi 2 xau chu"
echo "Nhap xau thu nhat: "
n=$(($n/10))
lt=$(luythua 8 $count)
Trang 86echo "Kiem tra so chinh phuong"
echo "Nhap mot so duong bat ky"
if [ $temp -eq $n ]; then
break fi
done
if [ $temp -eq $n ]; then
echo "$n la so chinh phuong"
else
echo "$n khong phai la so chinh phuong"
fi
Trang 87echo "* TRUONG DAI HOC BACH KHOA DA NANG *"
echo "* KHOA CONG NGHE THONG TIN *"
echo "************************************"
echo "* BAO CAO CHUYEN DE 2 *"
echo "* GVHD: THS NGUYEN VAN NGUYEN *"
echo "* SVTH: 1.Nguyen van khanh -08T4 *"
echo "* 2.Hoang Nhat Truong-08T4 *"
echo "* 3.Nguyen Ngoc Phat -08T3 *"
echo "* 4.Nguyen Viet An -08T1 *"
echo "************************************"
*.Kết quả