Cách sử dụng lệnh Echo trên Linux
Các tiếng vọng lại
lệnh hoàn hảo để ghi văn bản đã định dạng vào cửa sổ đầu cuối. Và nó không nhất thiết phải là văn bản tĩnh. Nó có thể bao gồm các biến shell, tên tệp và thư mục. Bạn cũng có thể chuyển hướng echo để tạo tệp văn bản và tệp nhật ký. Làm theo hướng dẫn đơn giản này để tìm hiểu cách thực hiện.
Echo lặp lại những gì bạn yêu cầu nó lặp lại
Zeus thích rời khỏi đỉnh Olympus để kết đôi với những tiên nữ xinh đẹp. Trong một chuyến đi, anh ta nói với một nữ thần núi tên là Echo sẽ giết vợ anh ta, Hera, nếu cô ấy đi theo anh ta. Hera đã đến tìm Zeus, và Echo đã làm tất cả những gì có thể để giữ cho Hera trò chuyện. Cuối cùng, Hera mất bình tĩnh và nguyền rủa Echo tội nghiệp để cô ấy chỉ lặp lại những lời cuối cùng mà người khác đã nói. Những gì Hera đã làm với Zeus khi cô bắt kịp anh ta là điều ai cũng đoán được.
Và điều đó, khá nhiều, là tiếng vọng lại
Rất nhiều trong cuộc sống. Nó lặp lại những gì nó đã được yêu cầu lặp lại. Đó là một chức năng đơn giản, nhưng là một chức năng quan trọng. Không có tiếng vọng lại
, chẳng hạn như chúng tôi không thể nhận được kết quả đầu ra từ các tập lệnh shell.
Trong khi không bị đầy ắp bởi vô số chuông và còi, thì vẫn có khả năng là tiếng vọng lại
có một số khả năng mà bạn chưa biết hoặc bạn đã quên.
tiếng vang? tiếng vang!
Hầu hết các hệ thống Linux đều cung cấp hai phiên bản của tiếng vọng lại
. Bash shell có tiếng vọng lại
được tích hợp vào nó và có một phiên bản thực thi nhị phân của tiếng vọng lại
cũng.
Chúng ta có thể thấy hai phiên bản khác nhau bằng cách sử dụng các lệnh sau:
gõ tiếng vang
tiếng vọng ở đâu
Các kiểu
lệnh cho chúng ta biết liệu lệnh mà chúng ta truyền cho nó vì đối số của nó là một nội trang shell, một tệp thực thi nhị phân, một bí danh hay một hàm. Nó báo cáo cho chúng tôi rằng tiếng vọng lại
là một nội trang của shell.
Ngay sau khi nó được tìm thấy câu trả lời, kiểu
ngừng tìm kiếm các trận đấu tiếp theo. Vì vậy, nó không cho chúng tôi biết liệu có các lệnh khác có cùng tên trong hệ thống hay không. Nhưng nó cho chúng ta biết nó tìm thấy cái nào trước. Và đó là lệnh sẽ được sử dụng theo mặc định khi chúng tôi đưa ra lệnh đó.
Các ở đâu
lệnh tìm kiếm tệp thực thi nhị phân, mã nguồn và trang man cho lệnh mà chúng tôi truyền cho nó dưới dạng tham số dòng lệnh của nó. Nó không tìm kiếm nội trang vỏ vì chúng không có tệp thực thi nhị phân riêng biệt. Chúng là một phần không thể thiếu của tệp thực thi Bash.
Các ở đâu
lệnh báo cáo rằng tiếng vọng lại
là một tệp thực thi nhị phân nằm trong /thùng rác
danh mục.
Để sử dụng phiên bản đó của tiếng vọng lại
bạn sẽ cần gọi nó một cách rõ ràng bằng cách cung cấp đường dẫn đến tệp thực thi trên dòng lệnh:
/ bin / echo --version
Nội trang của shell không biết những gì --phiên bản
đối số dòng lệnh là, nó chỉ lặp lại nó trong cửa sổ đầu cuối:
echo - sự đảo ngược
Các ví dụ được hiển thị ở đây đều sử dụng phiên bản mặc định của tiếng vọng lại
, trong trình bao Bash.
Viết văn bản vào thiết bị đầu cuối
Để viết một chuỗi văn bản đơn giản vào cửa sổ dòng lệnh, hãy nhập tiếng vọng lại
và chuỗi bạn muốn nó hiển thị:
echo Tên tôi là Dave.
Văn bản được lặp lại cho chúng tôi. Nhưng khi thử nghiệm, bạn sẽ sớm phát hiện ra rằng mọi thứ có thể phức tạp hơn một chút. Hãy xem ví dụ này:
echo Tên tôi là Dave và tôi là một người đam mê.
Cửa sổ đầu cuối hiển thị>
ký tên và ngồi đó, chờ đợi. Ctrl + C sẽ đưa bạn trở lại dấu nhắc lệnh. Điều gì đã xảy ra ở đó?
Dấu ngoặc kép hoặc dấu nháy đơn trong từ "Tôi" bị nhầm lẫn tiếng vọng lại
. Nó diễn giải câu trích dẫn duy nhất đó là phần mở đầu của một đoạn văn bản được trích dẫn. Bởi vì nó không phát hiện ra một câu trích dẫn cuối cùng,tiếng vọng lại
đang chờ đợi thêm thông tin đầu vào. Nó mong đợi rằng đầu vào thêm để bao gồm báo giá duy nhất còn thiếu mà nó đang chờ đợi.
Để bao gồm một dấu ngoặc kép trong một chuỗi, giải pháp đơn giản nhất là đặt toàn bộ chuỗi trong dấu ngoặc kép:
echo "Tên tôi là Dave và tôi là một người đam mê."
Gói văn bản của bạn trong dấu ngoặc kép là lời khuyên chung tốt. Trong tập lệnh, nó phân định rõ ràng các tham số bạn đang chuyển đến tiếng vọng lại
. Điều này làm cho việc đọc — và gỡ lỗi — các tập lệnh dễ dàng hơn nhiều.
Điều gì xảy ra nếu bạn muốn bao gồm một ký tự dấu ngoặc kép trong chuỗi văn bản của mình? Thật dễ dàng, chỉ cần đặt một dấu gạch chéo ngược \
phía trước dấu ngoặc kép (không có khoảng cách giữa chúng).
echo "Tên tôi là Dave và tôi là một" người đam mê ". \" "
Điều này kết thúc từ "geek" trong dấu ngoặc kép đối với chúng tôi. Chúng tôi sẽ thấy nhiều hơn trong số này thoát ra sau dấu gạch chéo ngược ký tự trong thời gian ngắn.
Sử dụng các biến có tiếng vọng
Cho đến nay, chúng tôi đã viết văn bản được xác định trước vào cửa sổ đầu cuối. Chúng ta có thể sử dụng các biến với tiếng vọng lại
để tạo ra đầu ra năng động hơn và có các giá trị được trình bao chèn vào cho chúng ta. Chúng ta có thể xác định một biến đơn giản bằng lệnh này:
my_name = "Dave"
Một biến được gọi là tên của tôi
đã được tạo. Nó đã được gán giá trị của văn bản "Dave." Chúng ta có thể sử dụng tên biến trong các chuỗi mà chúng ta chuyển đến tiếng vọng lại
, và giá trị của biến sẽ được ghi vào cửa sổ đầu cuối. Bạn phải đặt một ký hiệu đô la $
phía trước tên biến để cho tiếng vọng lại
biết nó là một biến.
Có một báo trước. Nếu bạn đã gói chuỗi của mình trong một dấu ngoặc kép tiếng vọng lại
sẽ coi mọi thứ theo nghĩa đen. Để có biến giá trị hiển thị, và không Tên của biến, sử dụng dấu ngoặc kép.
echo 'Tên tôi là $ my_name'
echo "Tên tôi là $ my_name"
Hơi phù hợp, điều đó đáng được nhắc lại:
- Sử dụng Độc thân dấu ngoặc kép dẫn đến văn bản được ghi vào cửa sổ đầu cuối trong một theo nghĩa đen thời trang.
- Sử dụnggấp đôi dấu ngoặc kép dẫn đến biến được diễn giải — còn được gọi là mở rộng biến — và giá trị được ghi vào cửa sổ đầu cuối.
LIÊN QUAN:Cách làm việc với các biến trong Bash
Sử dụng lệnh có tiếng vọng
Chúng ta có thể sử dụng một lệnh với tiếng vọng lại
và kết hợp đầu ra của nó vào chuỗi được ghi vào cửa sổ đầu cuối. Chúng ta phải sử dụng ký hiệu đô la $
như thể lệnh là một biến và đặt toàn bộ lệnh trong dấu ngoặc đơn.
Chúng ta sẽ sử dụng lệnh ngày. Một mẹo là sử dụng lệnh của chính nó trước khi bạn bắt đầu sử dụng nó với tiếng vọng lại
. Bằng cách đó, nếu có điều gì đó sai với cú pháp lệnh của bạn, bạn xác định nó và sửa nó trước khi bạn đưa nó vào tiếng vọng lại
chỉ huy. Sau đó, nếu tiếng vọng lại
lệnh không làm những gì bạn mong đợi, bạn sẽ biết vấn đề phải xảy ra với tiếng vọng lại
cú pháp vì bạn đã chứng minh cú pháp của lệnh.
Vì vậy, hãy thử điều này trong cửa sổ đầu cuối:
ngày +% D
Và, hài lòng rằng chúng tôi đang nhận được những gì chúng tôi mong đợi từ lệnh ngày, chúng tôi sẽ tích hợp nó vào một tiếng vọng lại
chỉ huy:
echo "Ngày hôm nay là: $ (date +% D)"
Lưu ý rằng lệnh nằm bên trong dấu ngoặc đơn và ký hiệu đô la $
nằm ngay trước dấu ngoặc đơn đầu tiên.
Định dạng văn bản với tiếng vọng
Các -e
(Bật thoát dấu gạch chéo ngược) tùy chọn cho phép chúng tôi sử dụng một số ký tự thoát khỏi dấu gạch chéo ngược để thay đổi bố cục của văn bản. Đây là những ký tự thoát ra sau dấu gạch chéo ngược mà chúng ta có thể sử dụng:
- \ a: Cảnh báo (trước đây được gọi là BEL). Điều này tạo ra âm thanh cảnh báo mặc định.
- \ b: Viết ký tự xóa lùi.
- \ c: Bỏ qua bất kỳ đầu ra nào khác.
- \ e: Viết một nhân vật thoát.
- \ f: Viết một ký tự nguồn cấp dữ liệu biểu mẫu.
- \ n: Viết một dòng mới.
- \ r: Viết dấu xuống dòng.
- \ t: Viết tab ngang.
- \ v: Viết tab dọc.
- \\: Viết một ký tự gạch chéo ngược.
Hãy sử dụng một số trong số chúng và xem chúng làm được gì.
echo -e "Đây là một dòng văn bản dài \ nsplit qua 3 dòng \ nwith \ ttabs \ ton \ tthe \ tthird \ tline"
Văn bản được chia thành một dòng mới mà chúng tôi đã sử dụng \ n
ký tự và một tab được chèn vào nơi chúng tôi đã sử dụng \ t
nhân vật.
echo -e "Đây \ vare \ vvertical \ vtabs"
Giống như \ n
các ký tự dòng mới, một tab dọc \ v
di chuyển văn bản xuống dòng bên dưới. Nhưng, không giống như\ n
các ký tự dòng mới, \ v
tab dọc không bắt đầu dòng mới ở cột số không. Nó sử dụng cột hiện tại.
Các \ b
các ký tự xóa lùi di chuyển con trỏ trở lại một ký tự. Nếu có thêm văn bản được ghi vào thiết bị đầu cuối, văn bản đó sẽ ghi đè lên ký tự trước đó.
echo -e "123 \ b4"
Chữ "3" được viết quá "4".
Các \ r
ký tự xuống dòng nguyên nhântiếng vọng lại
để trở về đầu dòng hiện tại và viết thêm bất kỳ văn bản nào từ cột số không.
echo -e "123 \ r456"
Các ký tự “123” được ghi đè bởi các ký tự “456”.
Các \ a
ký tự cảnh báo sẽ tạo ra một "tiếng bíp" có thể nghe được. Nó sử dụng âm thanh cảnh báo mặc định cho chủ đề hiện tại của bạn.
echo -e "Make a bleep \ a"
Các -n
(không có dòng mới) không phải là một chuỗi thoát sau dấu gạch chéo ngược, nhưng nó ảnh hưởng đến vẻ đẹp của bố cục văn bản, vì vậy chúng ta sẽ thảo luận về nó ở đây. Nó ngăn cản tiếng vọng lại
từ việc thêm một dòng mới vào cuối văn bản. Dấu nhắc lệnh xuất hiện ngay sau văn bản được ghi vào cửa sổ dòng lệnh.
echo -n "không có dòng mới cuối cùng"
Sử dụng echo Với Tệp và Thư mục
Bạn có thể dùng tiếng vọng lại
như một loại phiên bản của người nghèo của ls
. Tùy chọn của bạn rất ít và xa giữa khi bạn sử dụng tiếng vọng lại
như thế này. Nếu bạn cần bất kỳ loại độ trung thực hoặc kiểm soát tốt nào, tốt hơn hết bạn nên sử dụng ls
và quân đoàn các tùy chọn của nó.
Lệnh này liệt kê tất cả các tệp và thư mục trong thư mục hiện tại:
echo *
Lệnh này liệt kê tất cả các tệp và thư mục trong thư mục hiện tại có tên bắt đầu bằng “D”:
echo D *
Lệnh này liệt kê tất cả các tệp “.desktop” trong thư mục hiện tại:
echo * .desktop
Đúng vậy. Điều này không chơi với tiếng vọng lại
Điểm mạnh của ‘s. Sử dụng ls
.
Ghi vào tệp bằng tiếng vọng
Chúng tôi có thể chuyển hướng đầu ra từ tiếng vọng lại
và tạo tệp văn bản hoặc ghi vào tệp văn bản hiện có.
Nếu chúng ta sử dụng >
toán tử chuyển hướng, tệp được tạo nếu nó không tồn tại. Nếu tệp tồn tại, đầu ra từ tiếng vọng lại
được thêm vào đầu tệp, ghi đè lên bất kỳ nội dung nào trước đó.
Nếu chúng ta sử dụng >>
toán tử chuyển hướng, tệp được tạo nếu nó không tồn tại. Đầu ra từ tiếng vọng lại
được thêm vào cuối tệp và không ghi đè lên bất kỳ nội dung hiện có nào của tệp.
echo "Đang tạo tệp mới." > sample.txt
echo "Đang thêm vào tệp." >> sample.txt
cat sample.txt
Một tệp mới được tạo bởi lệnh đầu tiên và văn bản được chèn vào đó. Lệnh thứ hai thêm một dòng văn bản vào cuối tệp. Các con mèo
lệnh hiển thị nội dung của tệp vào cửa sổ đầu cuối.
Và tất nhiên, chúng tôi có thể bao gồm các biến để thêm một số thông tin hữu ích vào tệp của chúng tôi. Nếu tệp là một tệp nhật ký, chúng tôi có thể muốn thêm dấu thời gian vào tệp đó. Chúng ta có thể làm điều đó với lệnh tiếp theo.
Lưu ý các dấu ngoặc kép xung quanh các tham số cho ngày
chỉ huy. Chúng ngăn không gian giữa các tham số được hiểu là phần cuối của danh sách tham số. Chúng đảm bảo các tham số được chuyển đếnngày
một cách chính xác.
echo "Đã bắt đầu tệp nhật ký: $ (date + '% D% T')"> logfile.txt
cat logfile.txt
Logfile của chúng tôi được tạo cho chúng tôi và con mèo
cho chúng tôi thấy rằng cả dấu dữ liệu và dấu thời gian đã được thêm vào nó.
LIÊN QUAN:Stdin, stdout và stderr trên Linux là gì?
Đó là tiết mục của echo
Một lệnh đơn giản, nhưng không thể thiếu. Nếu nó không tồn tại, chúng tôi phải phát minh ra nó.
Rốt cuộc thì những trò tai quái của Zeus đã làm được một số điều tốt.