cuốn sách gpt4 ai đã làm

linux - Tập lệnh Bash sử dụng trạng thái thoát trong câu lệnh if

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-03 02:10:23 25 4
mua khóa gpt4 Nike

Có thể là một câu hỏi dành cho người mới, nhưng dù sao, trong phần giới thiệu của tôi về các lớp linux/unix liên quan đến các tập lệnh bash, trong một trong những câu hỏi tôi có, nó yêu cầu tôi tạo một tập lệnh để nếu người dùng tìm kiếm một tên trong một tệp thì không. ở đó nó sẽ xuất ra một thông báo có nội dung "đầu vào của bạnKhông có trong thư mục"

nó bảo dùng nếu như Báo cáo và trạng thái thoát $?.

Cho đến nay tôi đã có phần đầu vào nhưng tôi không chắc làm cách nào để thêm nó vào nếu có thể nếu như Dùng đúng trong câu $?.

#!/bin/bash
tên=$1

nếu [ "$name" = ""]

sau đó echo -n "Nhập tên để tìm kiếm: "

đọc tên

fi

grep -i $name ~uli101/2014c/danh bạ

nếu [ "$?" < "0" ]

sau đó lặp lại "lỗi"

fi

Tôi nhận được lỗi:

./phone4: dòng 14: 0: Không có tập tin hoặc thư mục như vậy

Câu hỏi của tôi là: làm thế nào để sử dụng $? với và nếu như tuyên bố, nếu tôi không thể, bạn có thể giải thích cách sử dụng $? trong câu hỏi này?

LƯU Ý: Tôi đã sử dụng tiếng vang $? để xem liệu grep có hiệu quả,$? làm thế nào để cho 0Nếu không thì 1.

câu trả lời hay nhất

Có hai lỗi trong đó. Những gì bạn đã thấy là [] Biểu thức ở<không được hiểu là "nhỏ hơn" mà là toán tử chuyển hướng luồng. Lý do là [Chỉ là một chương trình khác ( test bí danh), vì vậy [ "$?" < "0" ]Tương tự như con mèo < tên tập tin .Một sai lầm nữa là bạn không muốn kiểm tra "nhỏ hơn" mà "không bằng". Tóm tắt:

nếu [ "$?" < "0" ]

nên

nếu [ "$?" -ne "0" ]

Hoặc bạn có thể viết như thế này

if ! grep "$name" ~uli101/2014c/danh bạ

...bởi vìnếu nhưGiải thích mã trả về số 0 là đúng và mọi thứ khác là sai.

Về linux - Tập lệnh Bash sử dụng trạng thái thoát trong câu lệnh if, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/27208713/

25 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress