Thứ Bảy, 7 tháng 4, 2012

Bài tập lập trình shell trong Linux



Bài 1 . Chương trình tính tổng 1-> n                              
#!/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

Bài 2 . Chương trình tính giai thức của một số
#!/bin/sh
echo “Chuong trinh tinh $1!”
index=0
gt=1
while [ $index -lt $1 ]
do
          index=$(($index + 1))        
          gt=$(($gt * $index)) 
done
echo "$1!= $gt"
exit 0

Bài 3 . Chương trình đếm số dòng của một tệp tin 
#!/bin/sh
echo “Chuong trinh dem so dong cua tap tin $1”
{
n=0
while read line
 - 22-
do
          n=$(($n + 1))
done
echo “So dong cua tap tin $1 la : $n”
}<$1
exit 0

Bài4. Chương trình đếm số từ của một tập tin
#!/bin/sh
echo “Chuong trinh dem so tu cua tap tin $1”
{
n=0
while read line
do
          for wd in $line
          do
                    n=$(($n + 1))
          done
done
echo “Tong so tu cua tap tin $1 la : $n”
}<$1
exit 0

Bài5. Chương trình tìm dòng có độ dài lớn nhất trong một tập tin
#!/bin/sh
echo “Chuong trinh tim dong dai nhat trong tap tin $1”
{
n=0
max=0
dong=””
while read line
do
          n=`expr length “$line”`
          if [ $n –gt $max ]
          then
                    dong=”$line”

                    max=$n
          fi        
done
echo “Dong trong tap tin $1 co do dai max = $max la : $dong”
}<$1
exit 0

Bài 6.Chương trình tìm một xâu trong một tập tin
#!/bin/sh
echo “Chuong trinh tim xau $1 trong tap tin $2”
{
wordlen=`expr length “$1”`                               # Do dai tu can tim
while read textline
do
          textlen=`expr length “$textline”`             # Do dai cua dong vua doc
          end=$(($textlen – wordlen + 1”
          index=1
          while [ $index –le $end ]
          do
                    temp=`expr substr “$textline” $index $wordlen
                    if [ “$temp” = $1 ]
                    then
                              echo “Tim thay $1 tai dong $textline”
                              break
                    fi
                    index=$(($index + 1))
          done
done
}<$2
exit 0

Bài 7. Tìm số lớn nhất trong dãy số nhập vào
#/bin/bash
# input an array of elements
function input()
{
echo -n "n= "
read n

for ((i=0; i<n; i++))
do
echo -n "a[$i] " =
read a[$i]
done
}
#max of two numbers
function max2nums()
{
if [ "$1" -gt "$2" ]; then
max1=$1
echo $1
else
max1=$2
echo $2
fi
return $max1
}
#max of an array
function maxs()
{
max=${a[0]}
for ((i=1; i<n; i++))
do
max=$(max2nums ${a[$i]} $max)
done
echo "max = $max"
}
input
maxs
exit $?

Bài 8. 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
#!/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 9. 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
#!/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 10. Viêt́ chương triǹ h shell giaỉ phương triǹ h bâc̣ hai :  ax2 + bx +c =0 với các tham số a,b,c nhập từ bàn phiḿ va ̀ cać kêt́ qua chińh xać đêń hai chữ số.
#!/bin/bash
echo -n "a= "
read a
echo -n "b= "
read b
echo -n "c= "
read c
delta=$(echo "$b^2 - 4*$a*$c" | bc)
if [ $delta -lt 0 ]
then
echo "pt vo nghiem"
elif [ "$delta" -eq 0 ]
then
echo -n "pt co nghiem kep x= "
x=$(echo "scale=2; -$b/(2*$a)" | bc)
echo "$x"
else
echo "phuong trinh co 2 nghiem"
x1=$(echo "scale=2; -($b + sqrt($delta))/(2*$a)" | bc)
echo "x1= $x1"
x2=$(echo "scale=2; -($b - sqrt($delta))/(2*$a)" | bc)
echo "x2= $x2"
fi
exit 0









73 nhận xét:

  1. bạn giải dùm mình mấy bài này được ko

    Bài 1
    Viết chương trình in ra màn hình các thông tin sau:
    – Hello
    – Thư mục hiện hành
    – Tập tin và thư mục, kể cả các thư mục ẩn trong thư mục hiện hành
    – Ngày và giờ hiện tại

    Bài 2:
    Viết chương trình
    – Yêu cầu nhập họ
    – Yêu cầu nhập tên
    – So sánh họ và tên nhập vào với họ và tên của bạn. Nếu trùng khớp sẽ thông báo ra màn hình

    Bài 3
    Lệnh date +%H sẽ in ra giờ hiện tại. Dùng lệnh này để in ra màn hình câu: hoặc Chào buổi
    sáng , hoặc chào buổi trưa, hoặc chào buổi tối, tùy thuộc vào thời điểm hiện tại.

    Trả lờiXóa
    Trả lời
    1. Nhận xét này đã bị tác giả xóa.

      Xóa
    2. #!/bin/bash
      clear
      dg=$(date +%H)
      echo "bay gio la $dg"
      if [ 01 -ge $dg -a $dg -le 04 ]
      then
      echo "Heloo bay gio la buoi sang"
      elif [ 05 -ge $dg -a $dg -le 07 ]
      then
      echo "heloo bay gio la buoi trua"
      elif [ 07 -ge $dg -a $dg -le 12 ]
      then
      echo "heloo chao buoi chieu"
      else
      echo "chao buoi toi"
      fi

      Xóa
    3. giúp mình bài này với ạ

      Xóa
    4. Tạo một tệp tin với tên là bai1_de1.sh, thực hiện nhập một mảng gồm n
      số nguyên từ bàn phím. Sau đó, cho phép người dùng tạo một menu box (0.5đ) gồm
      các lựa chọn sau:
       Lựa chọn 0: Thoát (0.5đ).
       Lựa chọn 1: Tìm và in ra các số nhỏ nhất trong mảng vừa nhập. In kết quả ra
      information box (2đ).
       Lựa chọn 2: Tìm và in ra tổng các số chẵn trong mảng. In kết quả ra
      information box (1đ).
       Lựa chọn 3: Tìm ra số chính phương trong mảng (2đ).

      Xóa
  2. Mấy bài tập bạn đưa ra là dạng căn bản,tôi sẽ làm vài bài mẫu cho bạn xem thử

    Bài 1


    #!/bin/sh
    echo 'Hello';
    thumuchienhanh=`pwd`
    echo "Thu muc hien hanh:" $thumuchienhanh
    hienthitatca=`ls -A`
    echo "Hien thi tat ca tap tin: "$hienthitatca
    Ngaygiohientai=$(date +"%H:%M:%S %d-%m-%Y")
    echo "Ngay gio hien tai:" $Ngaygiohientai

    Trả lờiXóa
    Trả lời
    1. bạn làm giúp mình bài này với : viết chương trình shell nhập vào 1 dãy số và tìm số nhỏ nhất

      Xóa
    2. Viết shell script để: Nhận vào một số nguyên n và tính tổng 1 - n
      Viết shell script để Nhận vào một số nguyên n và tính giai thừa của số n
      Viết shell script nhận một đối số đầu vào là tên của một file sau đó thực hiện thống kê số từ trong file đó
      Viết shell script nhận một đối số đầu vào là tên của một file sau đó thực hiện thống kê số dòng trong file đó
      AI GIÚP MÌNH MẤY BÀI TRÊN VỚI.TKS ALL!!!

      Xóa
    3. Nhận xét này đã bị tác giả xóa.

      Xóa
  3. Bài 2


    #!/bin/sh
    echo "Nhap ho:"
    read ho
    echo "Nhap ten:"
    read ten
    myfirstname="Pham"
    mylastname="tri"
    if [ $ho = $myfirstname ] && [ $ten = $mylastname ]
    then
    echo "ban da nhap dung ten toi"
    else
    echo "ban da nhap ko dung ten toi"
    fi

    Trả lờiXóa
    Trả lời
    1. Viết chương trình Shell tính tổng sau S(x,n) = x^2 + x^4 +x^6 +....... + x^(2n)
      Vớix,n được nhập từ bàn phímvà x≠0,n ≠0

      giải giúp mình với ạ

      Xóa
  4. Bài 3 thì bạn tự làm thử được ko nha

    Trả lờiXóa
  5.  Viết script in ra chuỗi theo thứ tự ngược (vd: 123 à 321)

    Trả lờiXóa
  6.  Viết script tính tổng các ký số của một số được nhập vào

    Trả lờiXóa
  7. 6. Viết c/t in ra màn hình:
    1
    22
    333
    4444
    55555
    666666
    7777777
    88888888
    999999999

    7. Viết c/t in ra màn hình hình vẽ sau:

    *
    *
    ***
    ****
    *****
    *****
    ****
    **
    *

    8. In ra màn hình hình sau:

    *
    **
    ***
    ****
    *****
    ******
    *******
    ********
    *********
    *********
    ********
    *******
    ******
    *****
    ****
    ***
    **
    *

    Trả lờiXóa
  8. - Bài tập số 3,4 bạn có thể dùng lệnh wc
    - }<$1 có thể không hoạt động ở các hệ vỏ khác bash nên cần chỉ định rõ ràng shell cần dùng là /bin/bash
    Bạn có thể kiểm tra bằng lệnh:
    $ ls -l /bin/sh
    lrwxrwxrwx 1 root root 4 15:04 1 Th10 /bin/sh -> dash

    Trả lờiXóa
  9. Xây dựng chương trình trò chơi Đi Tìm Triệu Phú

    Các câu hỏi lần lượt được show ra màn hình ( tối thiểu 10 câu)
    Người chơi chọn trả lời a b c d, nếu đúng sẽ được đi tiếp đến câu hỏi tiếp theo.
    Trong lúc chơi người chơi có 2 quyền trợ giúp
    1. 50/50 -> 2 trong số 4 câu trả lời sẽ được loại bỏ ( chỉ loại bỏ câu trả lời sai)
    2. Đổi câu hỏi -> người chơi được đổi câu hỏi nếu không muốn trả lời câu hỏi được đưa ra ( chỉ 1 lần đổi câu hỏi)

    Kết thúc xuất ra điểm hoặc tiền mà người chơi thắng được.


    anh em làm bài này voi

    Trả lờiXóa
  10. ban Nguyen Tan Qui oi xem giup giai dum minh bai tap do dc ko ban

    Trả lờiXóa
  11. bạn có thể viết code giải phương trình trùng phương được không?
    ax^4 + bx^2 + c =0

    Trả lờiXóa
  12. Nhận xét này đã bị tác giả xóa.

    Trả lờiXóa
  13. giúp em với :
    Câu 2: Viết chương trình shell thực hiện
    - Nhập vào một mảng số nguyên.
    - Tìm phần tử lớn nhất của mảng.
    - Nhập vào số n, kiểm tra n có nhỏ hơn số phần tử của mảng không? Nếu n nhỏ hơn
    số phần tử của mảng, thực hiện xóa phần tử thứ n trong mảng.
    Câu 3: Viết một chương trình shell cho phép làm việc sau:
    In ra màn hình thông báo
    Menu:
    1. Kiểm tra user/group có tồn tại hay chưa
    2. Tìm tất cả các group mà user thuộc về.
    3. Kiểm tra quyền hạn của một user
    4. Thoát.
    Lựa chọn của bạn:
    1. Kiểm tra user/group có tồn tại hay chưa
    Trong phần này yêu cầu người nhập vào tên một user hoặc group, kiểm tra xem
    user/group có tồn tại chưa? Sau đó trả kết quả bằng một câu thông báo cho người
    dùng.
    2. Tìm tất cả các group mà user thuộc về.
    Người dùng sẽ nhập vào một user và chương trình phải trả ra danh sách các
    group mà user đó thuộc về.
    3. Kiểm tra quyền hạn của một user
    Người dùng nhập vào một user và một đường dẫn đến thư mục. Trả về kết quả là
    các thư mục và tập tin con trong thư mục người dùng nhập vào và quyền mà user
    đó có trên thự mục.
    4. Thoát.
    Thoát khỏi chương trình.
    Khi người dùng nhập sai thì thông báo ra màn hình yêu cầu người dùng nhập lại. Sau
    mỗi bước thực hiện thì menu được in trở lại để hướng dẫn người dùng.

    Trả lờiXóa
  14. Anh ơi cho em hỏi. trong shell muốn tạo mảng 2 chiều thì làm sao ạ . Anh giúp em với :(

    Trả lờiXóa
  15. Anh ơi giúp em làm bài 2.2 nha !
    Bài 2.1 :
    Tạo ra 2 quá trình. Quá trình thứ nhất đọc từ file nhiều chuỗi liên tiếp, mỗi chuỗi gồm các phép
    toán +, -, *, / và hai toán hạng.
    Ví dụ trong file sẽ lưu các chuỗi dạng như sau :
    2 + 3
    1 - 2
    4 * 6
    15 / 3
    Sau đó quá trình thứ nhất truyền các chuỗi dữ liệu này cho quá trình thứ hai. Quá trình thứ hai
    thực hiện tính toán và trả chuỗi kết quả về lại cho quá trình đầu tiên để ghi lại vào file như sau:
    2 + 3 = 5
    1 - 2 = -1
    4 * 6 = 24
    15 / 3 =5
    Thực hiện bài toán dùng message queue để giao tiếp giứa 2 quá trình
    Bài 2.2 :
    Viết chương trình tương tự bài 2.1 nhưng dùng pipe để giao tiếp

    Trả lờiXóa
  16. anh ơi giúp e bài 2.2 vs nha ! email e là starstk21@gmail.com

    Trả lờiXóa
  17. Chào bạn, bạn giúp mình giải quyết mày bài với. Cảm ơn bạn nhiều.
    Hãy sử dụng shell script để lập trình giải quyết bài toán sau
    Đề tài 2: Với các yêu cầu – cập nhật, tìm kiếm và hiển thị thông tin về giáo trình, ta lưu trữ thông tin về các giáo trình và tổ chức dữ liệu gồm:
    1> Thông tin về giáo trình như sau:
    Tên trường Ý nghĩa
    ID Mã Số (dùng làm khóa chính)
    Title Tên giáo trình
    Type Thể loại
    Composer Tác giả (Người viết giáo trình. G/s chỉ có 1 tác giả)
    2> Thông tin về các chương mục trong từng giáo trình gồm:
    Tên trường Ý nghiã
    ID Mã Số giáo trình
    PageNo Số hiệu trang (vị trí) của chương
    Title Tên chương
    Yêu cầu:
    1> Tổ chức dữ liệu: Thông tin về giáo trình và các chương được lưu thành 2 tệp tin.
    2> Xây dựng thực đơn chương trình gồm các mục: Thêm giáo trình mới, Tìm thông tin về giáo trình, thống kê số giáo trình theo chủng loại, Thoát chương trình
    3> Xây dựng các tính năng tương ứng với các mục trong thực đơn
    Chú ý:
    - Khi chạy chương trình sẽ hiển thị menu chọn (mỗi mục chọn được qui định bởi một phím chữ, ví dụ: thoát chương trình là phím q,….), khi người sử dụng chọn mục nào sẽ thực hiện tính năng tương ứng.
    - Chương trình cho phép người sử dụng cập nhật thêm các thông tin về giáo trình mới, cập nhật danh mục các chương mục của giáo trình, sửa đổi thông tin về giáo trình và các chương mục của giáo trình, hiển thị danh mục các giáo trình, danh mục các chương mục của từng giáo trình, tìm kiếm thông tin về giáo trình và thông tin về các chương mục trong giáo trình.

    Trả lờiXóa
  18. Bạn giúp mình với, cuối tuần này mình phải nộp bài rồi mà không biết làm thế nào. Mình xin cảm ơn và hậu tạ

    Trả lờiXóa
  19. # chuong trinh sap xep day so nhap vao
    #!/bin/sh
    # nhap vao mot day so, sau do xap xep
    # ham nhap
    function nhap()
    {
    echo -n "So phan tu n = ";
    read n
    for ((i=0; i<$n; i++))
    do
    echo -n "a[$i] = ";
    read a[$i];
    done
    }
    #end nhap
    #ham xuat
    function xuat()
    {
    for ((j=0; j<$n; j++))
    do
    echo -ne "${a[$j]}\t"
    done
    echo -e "\n";
    }
    #end xuat
    # ham hoan doi 2 so trong mang
    function swap2()
    {
    temp=${a["$1"]}
    a["$1"]=${a["$2"]}
    a["$2"]=$temp
    }

    # ham sap xep
    function sort()
    {
    for ((k=0; k<$n - 1; k++))
    do
    for ((h=k+1; h<$n; h++))
    do
    if [ ${a[$h]} -le ${a[$k]} ]
    then
    swap2 $h $k
    fi
    done
    done
    }
    nhap
    echo "Chuoi vua nhap:"
    xuat
    sort
    echo "Chuoi da sap xep:"
    xuat

    Trả lờiXóa
  20. giải giúp mình mấy bài này với,mình đang cần rất gấp...tks
    1. Viết chương trình dùng hàm fork đề sinh ra cây quá trình sau (A là shell và B là chương trình đang chạy)
    2. Tạo nhóm LINUX chứa 3 người dùng a . b . c và cấp quyền sử dụng (full control) thư mục /sbin và sử dụng (read) với thư mục chứa font tiếng việt của hệ thống.
    3. Viết chương trình minh họa 2 quá trình cha – con liên lạc qua pipeline. QT con nhận dữ liệu từ bàn phím và khi nhận “thoat” thì gởi chuỗi này cho QT cha và thóat. QT cha cũng thóat khi nhận được chuỗi này.
    4. Tạo nhóm LINUX chứa 2 người dùng aa . bb và chia tập tin /home/share/share.txt cho 2 người dùng trên.
    5. Viết chương trình minh họa 2 quá trình cha – con liên lạc 2 chiều qua pipeline. Hai quá trình hiển thị lên màn hình chuỗi nhận được.
    6. Viết chương trình minh họa 2 quá trình cha – con liên lạc qua pipeline. Khi QT cha gởi 2 số nguyên và QT con thực hiện phép công trên 2 số nhận được.
    7. Tạo người dùng a . người dùng b cùng nhóm với a . và c khác nhóm với a. lập quyền truy cập để a, c cùng quyền với tập tin /etc/passwd và b chỉ có quyền đọc.
    8. Viết chương trình minh họa 2 quá trình cha – con. QT con chạy vòng lặp vô hạn và gởi tín hiệu SIGKILL cho QT cha khi thóat bằng Ctrl+C.
    9. Tạo người dùng a . người dùng b cùng nhóm với a . và c khác nhóm với a. bảo vệ quyền truy cập vào nhóm của a,b bằng password. Test với c.
    10. Tạo người dùng a . người dùng b cùng nhóm với a . và c khác nhóm với a. Lập quyền truy cập để a b có quyền shutdown nhưng c không có quyền.

    Trả lờiXóa
  21. Bạn ơi, có thể giúp mình bài viết chương trình tính x^n và 1/x^n với x, n nhập từ bàn phím !!!

    Trả lờiXóa
  22. Bạn Trí ơi,mình muốn nhờ bạn giải giùm mình bài tập sau:
    Viết Shell Script thực hiện yêu cầu sau:
    + Nhận n là đối số trực tiếp từ bàn phím
    + Tìm ước chung lớn nhất của tổng các ước số lẻ và tổng các ước số chẵn của n.
    + Đếm xem có bao nhiêu ước số của n là số nguyên tố
    Ví dụ: n=10 -> các ước :1,2,5,10
    tổng ước lẻ = 1+5 = 6
    tổng ước chẵn = 2+10 =12

    Trả lờiXóa
    Trả lời
    1. anh làm đc bài này chưa ạ. giải giúp e với em đang cần.thanks ạ

      Xóa
  23. Đề tài 1: Với các yêu cầu – cập nhật, tìm kiếm và hiển thị thông tin về các loại xe gắn máy, ta lưu trữ thông tin về các xe gắn máy và tổ chức dữ liệu gồm:
    1> Thông tin về loại xe như sau:
    Tên trường Ý nghĩa
    Catalog Số hiệu loại xe (dùng làm khóa chính)
    Name Tên loại xe
    Discription Mô tả
    2> Thông tin về xe gắn máy gồm:
    Tên trường Ý nghiã
    Catalog Số hiệu loại xe (khoá ngoại liên kết với bảng phân loại)
    S1 Số khung
    S2 Số máy
    Manu Tên hãng sản xuất


    1> Tổ chức dữ liệu: Thông tin về xe găn máy và loại xe được lưu thành 2 tệp tin.
    2> Xây dựng thực đơn chương trình gồm các mục: Thêm loại xe, Thêm thông tin xe gắn máy, Tìm thông tin về xe, thống kê số xe theo chủng loại, Thoát chương trình
    3> Xây dựng các tính năng tương ứng với các mục trong thực đơn
    Chú ý:
    - Khi chạy chương trình sẽ hiển thị menu chọn (mỗi mục chọn được qui định bởi một phím chữ, ví dụ: thoát chương trình là phím q,….), khi người sử dụng chọn mục nào sẽ thực hiện tính năng tương ứng.
    - Chương trình cho phép người sử dụng cập nhật thêm các thông tin về loại xe, xe, các thông số cho xe, sửa đổi thông tin về xe và các thông số về xe, tìm kiếm thông tin về xe gắn máy.

    làm ơn giải giúp mình bài này nhé

    Trả lờiXóa
  24. giúp mình giải bài này với các pro :
    viết 1 chương trình shell thống kê dữ liệu cho anh theo ngày crawl, ngày publish có loại bỏ trùng lặp đầu vào có thể là 1 hoặc nhiều file, hoặc thư mục có thể có option 1 regex pattern để tìm theo regex đó regex này có thể áp dụng cho tên file/thư mục, hoặc nội dung của dữ liệu trong file
    ví dụ: chương trình tên là stat chẳng hạn: stat -e '^http://www.webtretho.com' -d /path/to/directory . Thì nó sẽ tìm trong thư mục /path/to/directory các file, sau đó đọc các file theo từng dòng, chọn dòng phù hợp với pattern trên và đưa ra màn hình thống kê số lượng bài theo crawl/pub
    file của mình nó theo định dạng sau: URL [tab] Crawl date [tab] Pub date [tab] JSON object

    Trả lờiXóa
  25. các pro giúp với. mai mình thi rồi.
    viết chương trình tính tổng các số chẵn liên tiếp
    vd khi bạn nhập n =7 thì sẽ là tổng của 7 số chẵn liên tiếp...
    mong rằng sớm nhận được sự giúp đỡ của pro thanks nhiều

    Trả lờiXóa
  26. Anh ơi giúp em bài này với:
    đề bài:Viêt́ chương trình shell đọc̣ môṭ danh sách các user từ tập tin users rồi kiểm tra xem các user này có thuộc group W3 hay không? Nếu có user nào thuộc group thì̀ xoá user đó và ra khỏi group W3 ngược lại thì thêm user đó vào group.

    Trả lờiXóa
  27. viet chuong trinh nhap vao n m xuat ra thu muc va tap tin co kich thuoc trong khoang n m

    Trả lờiXóa
  28. Anh giải giúp em bài này được hk ạ ?

    Ta có 1 file xxx.txt có thể tùy thời thay đổi bằng cách thêm vào 1 số dòng.
    Viết Shell script CHẠY TỰ ĐỘNG lấy mấy dòng thêm vào đó đẩy vào 1 file khác (yyy.txt) ?

    Em cám ơn

    Trả lờiXóa
  29. bạn ơi, viết chương trình xong rồi chạy file đó lên như thế nào zậy, giúp mình vs, mình mới bắt đầu học nên k biết, cảm ơn ạ

    Trả lờiXóa
  30. Bài 7. Tìm số lớn nhất trong dãy số nhập vào
    #/bin/bash
    # input an array of elements
    function input()
    {
    echo -n "n= "
    read n

    for ((i=0; i<n; i++))
    do
    echo -n "a[$i] " =
    read a[$i]
    done
    }
    #max of two numbers
    function max2nums()
    {
    if [ "$1" -gt "$2" ]; then
    max1=$1
    echo $1
    else
    max1=$2
    echo $2
    fi
    return $max1
    }
    #max of an array
    function maxs()
    {
    max=${a[0]}
    for ((i=1; i<n; i++))
    do
    max=$(max2nums ${a[$i]} $max)
    done
    echo "max = $max"
    }
    input
    maxs
    exit $?
    bài này của ad viết xong muốn chạy phải làm thế nào ạ, mình cảm ơn

    Trả lờiXóa
  31. Hãy sử dụng shell script để lập trình giải quyết bài toán sau
    Đề tài 5: Với các yêu cầu – cập nhật, tìm kiếm và hiển thị thiết bị trong phòng thí nghiệm, ta lưu trữ thông tin về các phòng thí nghiệm và tổ chức dữ liệu gồm:
    1> Thông tin về phòng thí nghiệm như sau:
    Tên trường Ý nghĩa
    ID Mã phòng (dùng làm khóa chính)
    TenPhong Tên phòng thí nghiệm
    Kieu Kiểu phòng thí nghiệm (Thí nghiệm vật lí, hóa học,…)
    NguoiQL Người quản lí
    (G/s mỗi phòng thí nghiệm có nhiều giá chứa dụng cụ thí nghiệm, các giá được đánh số thứ tự)
    2> Thông tin về các dụng cụ trong từng phòng thí nghiệm gồm:
    Tên trường Ý nghiã
    ID Mã phòng (khoá ngoại liên kết)
    OrderNo Số TT của giá chứa dụng cụ
    Ten Tên dụng cụ
    Yêu cầu:
    1> Tổ chức dữ liệu: Thông tin về các phòng thí nghiệm và các dụng cụ được lưu thành 2 tệp tin.
    2> Xây dựng thực đơn chương trình gồm các mục: Thêm phòng thí nghiệm mới, Tìm thông tin về phòng thí nghiệm, thống kê số phòng thí nghiệm theo chủng loại, Thoát chương trình
    3> Xây dựng các tính năng tương ứng với các mục trong thực đơn
    Chú ý:
    - Khi chạy chương trình sẽ hiển thị menu chọn (mỗi mục chọn được qui định bởi một phím chữ, ví dụ: thoát chương trình là phím q,….), khi người sử dụng chọn mục nào sẽ thực hiện tính năng tương ứng.
    - Chương trình cho phép người sử dụng cập nhật thêm các thông tin về phòng thí nghiệm mới, cập nhật danh mục các dụng cụ trong phòng thí nghiệm, sửa đổi thông tin về phòng thí nghiệm và các dụng cụ của phòng, hiển thị danh mục các phòng thí nghiệm, danh mục dụng cụ của từng phòng, tìm kiếm thông tin về phòng thí nghiệm và thông tin về các dụng cụ trong phòng thí nghiệm.
    Hãy sử dụng shell script để lập trình giải quyết bài toán sau
    giúp mình làm bài này đc ko ad

    Trả lờiXóa
  32. Hãy sử dụng shell script để lập trình giải quyết bài toán sau
    Đề tài 5: Với các yêu cầu – cập nhật, tìm kiếm và hiển thị thiết bị trong phòng thí nghiệm, ta lưu trữ thông tin về các phòng thí nghiệm và tổ chức dữ liệu gồm:
    1> Thông tin về phòng thí nghiệm như sau:
    Tên trường Ý nghĩa
    ID Mã phòng (dùng làm khóa chính)
    TenPhong Tên phòng thí nghiệm
    Kieu Kiểu phòng thí nghiệm (Thí nghiệm vật lí, hóa học,…)
    NguoiQL Người quản lí
    (G/s mỗi phòng thí nghiệm có nhiều giá chứa dụng cụ thí nghiệm, các giá được đánh số thứ tự)
    2> Thông tin về các dụng cụ trong từng phòng thí nghiệm gồm:
    Tên trường Ý nghiã
    ID Mã phòng (khoá ngoại liên kết)
    OrderNo Số TT của giá chứa dụng cụ
    Ten Tên dụng cụ
    Yêu cầu:
    1> Tổ chức dữ liệu: Thông tin về các phòng thí nghiệm và các dụng cụ được lưu thành 2 tệp tin.
    2> Xây dựng thực đơn chương trình gồm các mục: Thêm phòng thí nghiệm mới, Tìm thông tin về phòng thí nghiệm, thống kê số phòng thí nghiệm theo chủng loại, Thoát chương trình
    3> Xây dựng các tính năng tương ứng với các mục trong thực đơn
    Chú ý:
    - Khi chạy chương trình sẽ hiển thị menu chọn (mỗi mục chọn được qui định bởi một phím chữ, ví dụ: thoát chương trình là phím q,….), khi người sử dụng chọn mục nào sẽ thực hiện tính năng tương ứng.
    - Chương trình cho phép người sử dụng cập nhật thêm các thông tin về phòng thí nghiệm mới, cập nhật danh mục các dụng cụ trong phòng thí nghiệm, sửa đổi thông tin về phòng thí nghiệm và các dụng cụ của phòng, hiển thị danh mục các phòng thí nghiệm, danh mục dụng cụ của từng phòng, tìm kiếm thông tin về phòng thí nghiệm và thông tin về các dụng cụ trong phòng thí nghiệm.
    Hãy sử dụng shell script để lập trình giải quyết bài toán sau
    giúp mình làm bài này đc ko ad

    Trả lờiXóa
  33. Bạn ơi , giúp mình giải bài này đi . Kiểm tra giờ nếu nằm trong khoảng thời gian quy định thì xuất câu chào tương ứng . cảm ơn bạn nhiều

    Trả lờiXóa
  34. Nhận xét này đã bị tác giả xóa.

    Trả lờiXóa
  35. Nhờ giải dùm mình bài này ạ:
    1. Viết chương trình thực hiện nhập vào một dãy số tùy ý, số chữ số không giới hạn. Tìm số lớn nhất và bé nhất của dãy số đó.

    Trả lờiXóa
    Trả lời
    1. Mình mới học lập trình shell nên mong các bạn giải dùm hộ mình

      Xóa
  36. làm hộ em bài hiển thị n số Fibonaci đầu tiên bằng mảng với a?
    em cảm ươn

    Trả lờiXóa
  37. bạn ơi giúp mình giải bài này được không?tks
    4.Viết shell thực hiện in ra màn hình các số nguyên gồm 3 chữ số sao cho tích của 3 chữ số bằng tổng 3 chữ số

    Trả lờiXóa
  38. Nhận xét này đã bị tác giả xóa.

    Trả lờiXóa
  39. anh ơi em mới học linux em thấy mấy bài này anh giải bị sai hay sao đấy !! em dùng lệnh nano tạo file.sh chứa chương trình shell của anh nhưng em thấy bài 1 bài 2 anh ko có lệnh read để nhập số n để tính !! em ko biết cách giải của anh thì phải dùng như thế nào để truyền cái giá trị $1 vào ( em đoán cái này giống như biến n) em tra google ko ra anh cho em biết quy trình để chạy dc bài giải của anh với ạ ! em thanks

    Trả lờiXóa
  40. Viết chương trình Shell Script tính tổng dãy S = 1 +1/ 3 + 1/5 + … + 1/(2n + 1)?
    có ai chỉ làm bài này với. xin chân thành cảm ơn

    Trả lờiXóa
  41. viết chương trình tìm tất cả các tập tin và thư mục bắt đầu bằng từ “bai”, xuất ra file text.txt, sau đó xóa tất cả các tập tin và thư mục bắt đầu bằng “bai tap”. Xuất ra các file text số tập tin/thư mục bị xóa. Kiểm tra sự chính xác các tập tin xóa.
    a/c nào giúp e với ạ

    Trả lờiXóa
  42. Cho mình hỏi
    CÓ ai đang onl k?

    Trả lờiXóa
  43. AD có fb không cho em với e có chuyện cần hỏi ạ.

    em đang có đồ án về shell.và w3af ạ.
    giờ e muốn tạo 1 menu ( code về shell ạ )
    khi e chạy file thì sẽ ra 1 số thông báo như.
    bấm phím 1 để chọn tấn công bắng SQL
    bấm phim 2 để chọn tấn công bắng XSS.
    .....
    bấm 0 để thoát..
    AD có thể giúp e bài này k

    Trả lờiXóa
  44. add or ai có thể giúp em bài này không ạ. em cảm ơn!
    Nhận n là đối số trực tiếp từ bàn phím
    - Tìm ước chung lớn nhất của tổng các ước số lẻ và tổng các ước số chẵn của n
    - Đếm xem có bao nhiêu ước số của n là số nguyên tố

    Trả lờiXóa
  45. ad giup e bai nay voi e can gap a
    1) Tạo thư viện function có các chức năng sau:
    a) Sắp xếp mảng chứa các số nguyên theo trình tự tăng giá trị
    b) Tính lũy thừa của một số khi cho cơ số và số mũ của số đó
    c) Chuyển dãy ký tự thành in hoa
    d) Chuyển dãy ký tự thành các chữ thường
    e) Tính số lần xuất hiện của một ký tự được xem như một từ trong chuỗi ký tự
    f) Tạo thư mục con của thư mục temp
    g) Copy một file vào thư mục temp
    h) Kiểm tra xem một số nguyên có phải là palindrome hay không (số nguyên viết theo trình tự ngược lại vẫn không thay đổi (52825)

    Trả lờiXóa
  46. Viết shell script để: Nhận vào một số nguyên n và tính tổng 1 - n
    Viết shell script để Nhận vào một số nguyên n và tính giai thừa của số n
    Viết shell script nhận một đối số đầu vào là tên của một file sau đó thực hiện thống kê số từ trong file đó
    Viết shell script nhận một đối số đầu vào là tên của một file sau đó thực hiện thống kê số dòng trong file đó
    AI GIÚP MÌNH MẤY BÀI NÀY VS Ạ.TKS ALL!!!
    khongtu1996@gmail.com

    Trả lờiXóa
  47. Các bác giải giúp em bài này với ạ:
    bài tập: Viết chương trình ktchuoi.sh thực hiện các yêu cầu sau:
    - Kiểm tra một chuỗi xuất hiện ở bao nhiêu tập tin trong một thư mục cho
    trước (thư mục này nằm ở thư mục hiện hành). Kết quả kiểm tra (số lần xuất
    hiện) sẽ được lưu vào một tập tin khác.
    - Các thông tin chuỗi, thư mục, tập tin lưu kết quả sẽ được đưa vào chương
    trình dưới dạng tham số, trong đó tham số đầu tiên là chuỗi sẽ dùng để kiểm
    tra, tham số thứ hai là thư mục cần kiểm tra, tham số thứ ba là tên tập tin sẽ
    lưu kết quả. Thư mục cần kiểm tra và tập tin lưu kết quả nằm trong cùng thư
    mục với tập tin ktchuoi.sh.
    Ví dụ: Chạy chương trình với các tham số: chuỗi abc, thư mục cần kiểm tra
    student và tập tin lưu kết quả kq.txt
    /bin/sh ktchuoi.sh abc student kq.txt
    + Nếu thư mục student không tồn tại ở thư mục hiện hành thì sẽ ghi vào tập
    tin kq.txt dòng chữ: “Thu muc student khong ton tai”.
    + Nếu trong thư mục student có 3 tập tin có chứa chuỗi abc thì sẽ ghi vào tập
    tin kq.txt dòng chữ: “Trong thu muc student co 3 tap tin chua chuoi abc”.
    + Nếu trong thư mục student không có tập tin nào chứa chuỗi abc thì sẽ ghi
    vào file kq.txt dòng chữ: “Trong thu muc student khong co tap tin nao chua
    chuoi abc”.
    Lưu ý: Cần ghi đúng kết quả theo định dạng của ví dụ ở trên. Trước khi lưu kết
    quả xuống tập tin, xóa tất cả các nội dung đang có trong tập tin kết quả (nếu có).

    Trả lờiXóa
  48. bài tập: Viết chương trình tinhgio.sh thực hiện yêu cầu sau:
    - Tính và lưu xuống tập tin thời gian kết thúc công việc dựa trên thời gian bắt
    đầu làm việc và tổng thời gian làm việc (tính bằng phút).
    - Các thông tin thời gian bắt đầu làm việc (gồm 2 thành phần là giờ và phút),
    thời gian làm việc và tên tập tin lưu kết quả sẽ được đưa vào chương trình
    dưới dạng tham số, trong đó tham số đầu tiên là giờ bắt đầu làm việc, tham số
    thứ hai là phút bắt đầu làm việc, tham số thứ ba là thời gian làm việc và tham
    số thứ tư là tên tập tin dùng để lưu kết quả.
    - Giờ bắt đầu làm việc phải nhỏ hơn 24, phút bắt đầu làm việc phải nhỏ hơn
    60. Thời gian làm việc tối đa là 480 phút. Nếu các điều kiện này không được
    thỏa thì phải in thông báo cụ thể ra tập tin kết quả (xem chi tiết ở các ví dụ
    bên dưới).
    - Khi kết quả tính ra lớn hơn hoặc bằng 24 giờ thì phải quy đổi về thời gian
    thông thường (nhỏ hơn 24).
    - Trong tập tin kết quả, chỉ cần lưu giờ và phút (cách nhau bởi 1 khoảng trắng),
    xem chi tiết ở các ví dụ bên dưới. Tập tin lưu kết quả nằm trong cùng thư
    mục với tập tin tinhgio.sh.
    Ví dụ 1: Chạy chương trình với các tham số 20 (giờ), 10 (phút), 140 (thời gian làm
    việc) và kq.txt (tên tập tin lưu kết quả): /bin/sh tinhgio.sh 20 10 140 kq.txt
    thì sẽ ghi vào tập tin kq.txt hai số 22 30 (có nghĩa là 22 giờ 30 phút).
    Ví dụ 2: Chạy chương trình với các tham số 24 (giờ), 15 (phút), 50 (thời gian làm
    việc) và kq.txt (tên tập tin lưu kết quả): /bin/sh tinhgio.sh 24 15 50 kq.txt
    thì sẽ ghi vào tập tin kq.txt dòng chữ “Gio khong hop le”.
    Ví dụ 3: Chạy chương trình với các tham số 8 (giờ), 65 (phút), 50 (thời gian làm
    việc) và kq.txt (tên tập tin lưu kết quả): /bin/sh tinhgio.sh 8 65 50 kq.txt
    thì sẽ ghi vào tập tin kq.txt dòng chữ “Phut khong hop le”.
    Ví dụ 4: Chạy chương trình với các tham số 20 (giờ), 10 (phút), 490 (thời gian làm
    việc) và kq.txt (tên tập tin lưu kết quả): /bin/sh tinhgio.sh 20 10 490 kq.txt
    thì sẽ ghi vào tập tin kq.txt dòng chữ “Thoi gian lam viec khong hop le”.
    Ví dụ 5: Chạy chương trình với các tham số 20 (giờ), 10 (phút), 300 (thời gian làm
    việc) và kq.txt (tên tập tin lưu kết quả): /bin/sh tinhgio.sh 20 10 300 kq.txt
    thì sẽ ghi vào tập tin kq.txt hai số 1 10 (có nghĩa là 1 giờ 10 phút).
    Lưu ý: Chỉ nhập các ký tự là chữ số (từ 0-9) cho giờ và phút, không nhập các kí tự
    khác. Cần ghi đúng kết quả theo định dạng của ví dụ ở trên. Trước khi lưu kết quả
    xuống tập tin, xóa tất cả các nội dung đang có trong tập tin kết quả (nếu có).

    Trả lờiXóa
  49. Ai giúp em bài này với ạ !!
    1. Bài tập 1: Viết chương trình ktchuoi.sh thực hiện các yêu cầu sau:
    - Kiểm tra một chuỗi có tồn tại trong một tập tin cho trước ở thư mục hiện
    hành. Kết quả kiểm tra sẽ được lưu vào một tập tin khác.
    - Các thông tin chuỗi, tập tin kiểm tra, tập tin lưu kết quả sẽ được đưa vào
    chương trình dưới dạng tham số, trong đó tham số đầu tiên là chuỗi sẽ dùng
    để kiểm tra, tham số thứ hai là tên tập tin cần kiểm tra, tham số thứ ba là tên
    tập tin sẽ lưu kết quả. Tập tin lưu kết quả nằm trong cùng thư mục với tập tin
    ktchuoi.sh.
    Ví dụ: Chạy chương trình với các tham số: chuỗi abc, tập tin cần kiểm tra
    student.txt và tập tin lưu kết quả kq.txt
    /bin/sh ktchuoi.sh abc student.txt kq.txt
    + Nếu tập tin student.txt không tồn tại ở thư mục hiện hành thì sẽ ghi vào tập
    tin kq.txt dòng chữ: “Tap tin student.txt khong ton tai”.
    + Nếu trong tập tin student.txt có chuỗi abc thì sẽ ghi vào tập tin kq.txt dòng
    chữ: “Trong tap tin student.txt co chuoi abc”.
    + Nếu trong tập tin student.txt không có chuỗi abc thì sẽ ghi vào tập tin kq.txt
    dòng chữ: “Trong tap tin student.txt khong co chuoi abc”.
    Lưu ý: Cần ghi đúng kết quả theo định dạng của ví dụ ở trên. Trước khi lưu kết
    quả xuống tập tin, xóa tất cả các nội dung đang có trong tập tin kết quả (nếu có).
    2. Bài tập 2: Viết chương trình tinhngay.sh thực hiện yêu cầu sau:
    - Tính và lưu xuống tập tin số ngày có trong tháng và năm cho trước.
    - Các thông tin năm, tháng và tên tập tin lưu kết quả sẽ được đưa vào chương
    trình dưới dạng tham số, trong đó tham số đầu tiên là năm, tham số thứ hai là
    tháng và tham số thứ ba là tên tập tin dùng để lưu kết quả. Tập tin lưu kết quả
    nằm trong cùng thư mục với tập tin tinhngay.sh.
    - Năm phải lớn hơn 1900. Nếu giá trị năm không thỏa điều kiện này (hoặc
    tháng không hợp lệ) thì phải in thông báo cụ thể ra tập tin kết quả (xem chi
    tiết ở các ví dụ bên dưới).
    Ví dụ 1: Chạy chương trình với các tham số 2001 (năm), 11 (tháng) và kq.txt
    (tên tập tin lưu kết quả): /bin/sh tinhngay.sh 2001 11 kq.txt
    thì sẽ ghi vào tập tin kq.txt số 30.
    Ví dụ 2: Chạy chương trình với các tham số 1841 (năm), 11 (tháng) và kq.txt (tên
    tập tin lưu kết quả): /bin/sh tinhngay.sh 1841 11 kq.txt
    thì sẽ ghi vào tập tin kq.txt dòng chữ “Nam khong hop le”.
    Ví dụ 3: Chạy chương trình với các tham số 1914 (năm), 13 (tháng) và kq.txt (tên
    tập tin lưu kết quả): /bin/sh tinhngay.sh 1914 13 kq.txt
    thì sẽ ghi vào tập tin kq.txt dòng chữ “Thang khong hop le”.
    Lưu ý: Chỉ nhập các ký tự là chữ số (từ 0-9) cho năm và tháng, không nhập các kí
    tự khác. Cần ghi đúng kết quả theo định dạng của ví dụ ở trên. Trước khi lưu kết
    quả xuống tập tin, xóa tất cả các nội dung đang có trong tập tin kết quả (nếu có).

    Trả lờiXóa
  50. cho mình hỏi muốn thiết lập bộ gõ tiếng việt trong lập trình shell thì như thế nào???

    Trả lờiXóa
  51. Anh chị cứu em vs ạ
    Viết chương trình tính tổng
    S=1 +2 mũ 3 + 3 mũ3 + ....n mũ 3
    Với n là số nguyên dương nhận từ tham số dòng list

    Trả lờiXóa
  52. Nhận xét này đã bị tác giả xóa.

    Trả lờiXóa
  53. Anh chị ngang qua đây giúp e vs ạ! hiuhiu
    1. Viết shell script nhập vào số n (n > 0). Sau đó liệt kê và tính tổng tất cả các số nguyên tố nhỏ hơn n.
    2. Viết shell script nhập vào số n. Tính: S(n) = 1 + 1/2+1/4+⋯+ 1/2n

    Trả lờiXóa
  54. anh chị giúp em với ạ
    em mới học linux
    có bài tập
    Tính N số nguyên (bất kỳ) nhập từ bàn phím bằng mảng với ạ
    em cảm ơn nhiều ạ

    Trả lờiXóa
  55. Viết chương trình shell xuất ra màn hình tất cả các số nguyên tố <1000 mà không dùng ‘mảng’, cũng không viết hàm con kiểm tra một số có nguyên tố hay không, theo 02 cách: đệ quy và không đệ quy.
    Bạn có thể giúp mình bài này được không ạ

    Trả lờiXóa
  56. Giusp mình với các bạn
    Dãy số nguyên có tối đa 30 phần tử. Yêu cầu:
    - Nhập dãy.
    - In dãy vừa nhập.
    - Đếm các phần tử có nội dung chẵn.
    - In các phần tử ở vị trí chẵn và các phần tử ở vị trí lẻ trên 2 dòng khác nhau.
    - Tính tích các phần tử ở vị trí lẻ và có nội dung là chẵn.
    - Sắp xếp các phần tử của dãy theo chiều giảm dần. In dãy sau khi sắp xếp.

    Trả lờiXóa
  57. anh chị giúp e với ạ
    nhập vào số n sau đó in ra tam giác vuông cân như sau ( giả sử người dùng nhập vào số 5 thì in ra ta giác như sau:
    *
    **
    ***
    ****
    *****

    Trả lờiXóa
  58. viết lệnh thực hiện tạo ra trong thư mục TAM một tập tin songuyen.txt có nội dung là các số nguyên lẻ nằm trong khoảng từ 1 đến 10000. Với mỗi số nguyên được hiển thị trên từng dòng
    giúp em giải bài này được không ạ

    Trả lờiXóa
  59. Mọi người giúp em bài này với ạ
    Viết chương trình shell kiểm tra số n có là số HOÀN HẢO hay không. với n được truyền vào thông qua tham số của chương trình.(số hoàn hảo là số có tổng các ước số nhỏ hơn nó bằng chính nó. ví dụ 6 = 1 + 2 +3; 28 = 1 + 2 + 4 +7 +14; là các số Hoàn hảo.

    Trả lờiXóa