Câu 1printf khác echo ở điểm nào?
Xuất có định dạng — printf
Khác với echo, printf không tự thêm dòng mới ở cuối, nên bạn tự viết \n. Học cách chèn giá trị bằng %s/%d, căn cột bằng \t, và tạo tệp nhiều dòng — thực hành ngay trên terminal trong trình duyệt.
printf khác echo thế nào — Không tự xuống dòng
printf in văn bản giống như echo, nhưng khác với echo, nó không tự thêm một dòng mới ở cuối.
Bạn tự viết \n ở bất cứ chỗ nào cần ngắt dòng.
Vì bạn có thể dựng đầu ra đúng như mong muốn, nó cũng tiện để tạo các tệp nhiều dòng.
printf 'hello\n' in hello và một dòng mới.
Bỏ \n đi thì đầu ra tiếp theo sẽ nối tiếp trên cùng một dòng.
Viết printf 'a\nb\nc\n' > file thì bạn tạo trực tiếp một tệp 3 dòng.
echo tự thêm một dòng mới ở cuối; printf chỉ ngắt dòng tại nơi bạn viết \n.echo hello # hello + dòng mới tự động
printf 'hello\n' # hello + dòng mới bạn tự viết
printf 'a\nb\nc\n' > letters.txt # tạo một tệp 3 dòng
cat letters.txt # 3 dòng a / b / c
| Cách viết | Dòng mới ở cuối | Kết quả |
|---|---|---|
echo 'hi' | Tự thêm | hi + dòng mới |
printf 'hi' | Không thêm | chỉ hi (không dòng mới) |
printf 'hi\n' | Không thêm | hi + dòng mới vì bạn đã viết \n |
Chèn giá trị và căn cột — %s %d \t
Viết %s (chuỗi) hoặc %d (số nguyên) trong định dạng, thì các giá trị liệt kê sau đó được chèn vào những vị trí ấy.
printf 'name=%s\n' alice in name=alice.
Nó tốt hơn việc nối chuỗi đơn giản bằng echo khi cần đặt giá trị vào một khuôn cố định.
\t là một tab, dùng khi bạn muốn căn cột.
Định dạng được áp dụng lặp lại, một lần cho mỗi nhóm giá trị theo sau.
In tiêu đề và dữ liệu, mỗi cái theo định dạng phân tách bằng tab, như printf '%s\t%d\n' alice 30, thì các cột thẳng hàng.
%s chèn một chuỗi, %d một số nguyên, và \t căn cột bằng một tab.printf 'name=%s\n' alice # name=alice
printf '%s\t%s\n' name age # tiêu đề, phân tách bằng tab
printf '%s\t%d\n' alice 30 # một dòng dữ liệu, đã căn cột
| Ký hiệu | Ý nghĩa | Ví dụ → đầu ra |
|---|---|---|
%s | Chèn một chuỗi | printf '%s\n' hi → hi |
%d | Chèn một số nguyên | printf '%d\n' 42 → 42 |
\t | Tab (căn cột) | printf 'a\tb\n' → a + tab + b |
\n | Dòng mới | printf 'x\n' → x + dòng mới |
Kiểm tra kiến thức
Hãy trả lời từng câu hỏi một.
Câu 2printf 'name=%s\n' alice in ra gì?
Câu 3\t biểu thị điều gì?