Khi lập trình bash shell trên Linux, bạn có nhu cầu cần in output thứ tự của 1 dãy số liền kề hoặc 1 dãy chữ cái liền kề thì bạn sẽ làm thế nào ? Ở đây mình sẽ bày 2 cách gồm :
– Sử dụng lệnh ‘seq‘
– Sử dụng cấu trúc ‘{..}‘
Contents
1. Sử dụng lệnh ‘seq’
– Mình sẽ đưa ra các ví dụ cụ thể cho dễ hiểu luôn.
– Nhược điểm : lệnh ‘seq’ chỉ dùng để in số thôi, không in được kí tự chữ cái ra và cũng không in ngược chiều được.
+ In dãy số liền kề từ 1 đến 10
# seq 1 10 1 2 3 4 5 6 7 8 9 10
+ In dãy số cách nhau 1 số
# seq 0 2 15 0 2 4 6 8 10 12 14
2. Sử dụng cấu trúc ‘{..}’
– Đây là cấu trúc để thực thi, chứ không phải lệnh thực thi.
– Dùng in được cả số, cả chữ hoa lẫn chữ thường.
– In ngược chiều được.
– Hạn chế không in cách số được.
+ In dãy số liền kề từ 1 đến 10 (và ngược chiều in)
# echo {1..10} 1 2 3 4 5 6 7 8 9 10
# echo {10..1} 10 9 8 7 6 5 4 3 2 1
+ In dãy kí tự chữ cái liền kề (và ngược chiều in)
# echo {a..l} a b c d e f g h i j k l
# echo {A..L} A B C D E F G H I J K L
# echo {l..a} l k j i h g f e d c b a
# echo {L..A} L K J I H G F E D C B A
3. Trường hợp khác dùng với ‘{..}’
+ Vòng lặp ‘for’
# for i in {106..99}; do echo $i; done
+ Tạo folder/files
# mkdir -p test/{1..10}/{1..10}
He, cám ơn các bạn đã theo dõi bài viết. Nếu có bất kì vấn đề cần trao đổi thì comment dưới bài viết nhé.