Bash printf Chức năng: 7 Ví dụ cho Linux

Bash printf Chức năng: 7 Ví dụ cho Linux

Nếu đã sử dụng Bash shell trong một khoảng thời gian dài, bạn có thể biết cách in các chuỗi trong thiết bị đầu cuối Linux bằng lệnh echo. Tuy nhiên, lệnh printf làm cho việc in văn bản có định dạng cụ thể dễ dàng hơn nhiều.





Hôm nay chúng ta sẽ học cách sử dụng hàm printf để nâng cao kỹ năng viết kịch bản Bash của chúng ta.





Hàm Bash printf là gì?

Như tên cho thấy, printf là một hàm in các chuỗi văn bản được định dạng. Điều đó có nghĩa là bạn có thể viết một cấu trúc chuỗi (định dạng) và sau đó điền vào nó với các giá trị (các đối số).





Nếu bạn đã quen thuộc với các ngôn ngữ lập trình C / C ++, bạn có thể đã biết cách printf hoạt động. Printf trong Bash shell rất giống nhau, nhưng nó có một vài khác biệt nhỏ.

Tìm hiểu thêm: Các trang web tốt nhất để bắt đầu với lập trình C ++



Cách sử dụng printf trong Bash Shell

Cú pháp cơ bản cho printf là:

printf format [argument]

Printf sẽ in định dạng chuỗi trong khi triển khai rò rỉ ( ) và chỉ thị ( % ) thông qua việc sử dụng tranh luận . Lưu ý kết quả đầu ra của lệnh sau:





$ printf 'Hello, %s' world
Hello, world

Printf đã lấy thế giới đối số và thay thế %NS ký tự trong chuỗi được chỉ định với nó.

Bạn có thể nhận thấy rằng sau khi xuất, Bash không tạo một dòng mới cho bạn. Không giống như lệnh echo, printf sẽ không cho rằng bạn muốn một dòng mới sau khi in đầu ra. Do đó, bạn sẽ cần sử dụng ký tự dòng mới trong mỗi trường hợp.





Để in một chuỗi và sau đó chuyển sang một dòng mới, hãy nhập printf 'Xin chào, thế giới n' .

Hello, world

Điều quan trọng cần lưu ý là printf sẽ cố gắng sử dụng lại định dạng cho tất cả các đối số của bạn. Bạn có thể sử dụng điều này để có lợi cho mình, nhưng nếu không cẩn thận, bạn có thể nhận được kết quả như thế này:

$ printf 'My name is %s ' Jordan Gloor
My name is Jordan My name is Gloor

Bạn cũng nên lưu ý rằng nếu thiếu đối số, printf sẽ diễn giải mọi lệnh dưới dạng 0 (cho một số) và vô giá trị (đối với một chuỗi).

$ printf 'Hello, %s.'
Hello, .

Bây giờ bạn đã biết cách hoạt động của tập lệnh Bash với printf trong Linux, bạn đã sẵn sàng để bắt đầu sử dụng nó trong các lệnh của mình.

Ví dụ về Linux Bash printf

Printf có nhiều mã định dạng mà bạn có thể sử dụng trong các tập lệnh của mình. Nhưng hôm nay chúng ta sẽ chỉ đề cập đến một số cái chung cho hàm.

1. Định dạng đầu ra bằng chuỗi

Để định dạng đầu ra bằng chuỗi văn bản, hãy sử dụng %NS chỉ thị.

$ printf '%s is one of the largest online %s.' MUO 'technology publications'
MUO is one of the largest online technology publications.

2. Định dạng chuỗi đầu ra với số thập phân

Để định dạng một chuỗi với một số nguyên, bạn có thể sử dụng %NS chỉ thị cho một số thập phân có dấu.

$ printf 'MUO was founded in %d.' 2007
MUO was founded in 2007.

Lưu ý rằng nếu bạn muốn sử dụng một số thập phân không có dấu trong đầu ra, bạn sẽ phải sử dụng % u chỉ thị thay thế.

tài khoản google của tôi bao nhiêu tuổi

Có liên quan: 'Bash' có nghĩa là gì trong Linux?

3. Đầu ra các hàm toán học bằng printf

Định dạng các hàm toán học với lệnh printf rất dễ dàng. Chỉ cần đặt biểu thức của bạn bên trong dấu ngoặc kép như bạn thường làm trong Bash và chỉ định biểu thức trong danh sách đối số.

$ printf '1 + 1 is %d' $((1+1))
1 + 1 is 2

4. Định dạng số thập lục phân

Nếu bạn cần định dạng số thập lục phân, hãy sử dụng % NS cho chữ thường và % NS cho chữ hoa.

$ printf %X 1000
3E8C

Để in ngày và giờ hiện tại, bạn có thể kết hợp printf với ngày lệnh và chuyển các chỉ thị sau.

$ printf '%(%m-%d-%Y %H:%M:%S)T' $(date +%s)
03-26-2021 15:27:57

Bạn có thể thấy các thông số định dạng cho tháng, ngày, năm, giờ, phút và giây trong đầu ra nói trên.

6. Định dạng chuỗi bằng ký tự Unicode

Để in các ký tự Unicode với printf, hãy sử dụng u thoát cho Unicode 16-bit và U cho Unicode 32-bit.

Ví dụ, bạn có thể in bản quyền ký hiệu bằng lệnh sau:

$ printf 'u00A9'
©

7. Thêm khoảng cách vào đầu ra

Bạn có thể định dạng chuỗi của mình với khoảng cách bằng cách xác định, trước bộ chỉ định chỉ thị, một số ký tự được in tối thiểu. Các ký tự không sử dụng sẽ được điền vào khoảng trắng.

Ví dụ, đánh máy printf '% s:% 5d n' 'Giá trị 1' 25 'Giá trị 2' 120 sẽ xuất:

Value 1: 25
Value 2: 120

Các % 5ngày định dạng định dạng trong đầu ra biểu thị rằng chuỗi được định dạng sẽ chứa tối thiểu năm ký tự. Vì 25 chỉ có hai chữ số nên khoảng trắng được thêm vào các ký tự còn lại.

Nếu bạn chuyển một số âm làm chiều rộng, chỉ thị sẽ được căn trái thay vì căn phải.

$ printf '%-10s: %d ' 'Circles' 25 'Boxes' 120
Circles : 25 Boxes : 120

Nếu bạn muốn tạo biến width, bạn có thể chuyển một dấu hoa thị thay vì một số và printf sẽ sử dụng số tiếp theo mà nó tìm thấy trong danh sách đối số.

$ printf '%*s: %d ' -10 'Circles' 25 -10 'Boxes' 120
Circles : 25 Boxes : 120

Có liên quan: Mọi thứ bạn cần biết về Bash For Loops trong Linux

Học lệnh printf của Linux

Với lệnh printf trong vành đai tiện ích tập lệnh Bash, bạn đã sẵn sàng bắt đầu in các chuỗi phức tạp và khác nhau trong thiết bị đầu cuối của mình. Khi bạn đang phát triển các tập lệnh Bash của mình, điều quan trọng là phải đảm bảo rằng bạn đang làm việc trong môi trường hiệu quả nhất có thể. Điều này sẽ không chỉ cải thiện kỹ năng dòng lệnh của bạn mà còn nâng cao quy trình làm việc của bạn nói chung.

Đăng lại Đăng lại tiếng riu ríu E-mail 10 phân phối Linux tốt nhất cho nhà phát triển

Sẵn sàng để bắt đầu phát triển trên một hệ điều hành mã nguồn mở? Dưới đây là các bản phân phối Linux tốt nhất để lập trình.

tab alt không hoạt động windows 7
Đọc tiếp Chủ đề liên quan
  • Linux
  • Linux Bash Shell
  • Lệnh Linux
Giới thiệu về tác giả Jordan Gloor(Đã xuất bản 51 bài báo)

Jordan là một nhà văn nhân viên của MUO, người đam mê làm cho Linux có thể truy cập và không bị căng thẳng cho tất cả mọi người. Anh ấy cũng viết hướng dẫn về quyền riêng tư và năng suất.

Xem thêm từ Jordan Gloor

Theo dõi bản tin của chúng tôi

Tham gia bản tin của chúng tôi để biết các mẹo công nghệ, đánh giá, sách điện tử miễn phí và các ưu đãi độc quyền!

Bấm vào đây để đăng ký