Tôi biết điều này đã được bảo hiểm kém trước đây, nhưng những câu trả lời đó hoặc thiếu giải thích hoặc không áp dụng.
Về cơ bản tại một số điểm, tập lệnh của tôi cần kiểm tra xem một tập tin có được chỉ định hay không, nếu nó được sử dụng sau này làm đầu vào.
[ -f "$1" ] && TINPUT="$1"
đủ đơn giản ... Bây giờ nếu một tập tin không được tìm thấy hoặc không được chỉ định, tôi sẽ có TINPUT="-"
lệnh này để đọc lệnh sau để đọc stdin.
Đây là câu hỏi của tôi ... Làm thế nào để tập lệnh chết vì lỗi, nếu nó được chạy mà không có đường ống hoặc không có tệp được chỉ định?
Tôi đang sử dụng dấu gạch ngang, trình bao tuân thủ Debian POSIX, vì vậy tôi không thể sử dụng Bashism. Tôi cũng thích sử dụng danh sách hơn, ifs
nhưng hầu hết ifs
có thể được viết trong danh sách.
|
vị trí đầu tiên. điều đó là không thể, điều mà tôi tin là có thể không, việc kiểm tra dữ liệu cũng sẽ đủ. Về cơ bản tôi muốn đoạn script kết thúc và nói, 'script cần một tên tệp, hoặc stdin', thay vì chỉ treo không có đầu ra vĩnh viễn như bây giờ.