Tôi có một kịch bản lệnh vỏ cá có hành vi mặc định là gửi email khi hoàn tất. Tôi muốn sửa đổi nó để đáp ứng một đối số nomail
từ dòng lệnh. Vì vậy, ví dụ, chạy kịch bản thông thường sẽ tạo ra một email:Viết kịch bản vỏ cá bằng một đối số tùy chọn
michaelmichael: ~/bin/myscript
Nhưng nếu chạy với nomail
chuyển đổi, nó sẽ không gửi email xác nhận:
michaelmichael: ~/bin/myscript nomail
Nếu Tôi chạy kịch bản với đối số nomail
, nó chạy tốt. Nếu không có nomail
, không xác định và sẽ phát ra lỗi. Tôi đã lùng sục tài liệu về vỏ cá, nhưng dường như không tìm được thứ gì có hiệu quả. Dưới đây là những gì tôi có cho đến nay
switch $argv
case nomail
## Perform normal script functions
case ???
## Perform normal script functions
mailx -s "Script Done!"
end
Chạy này ném các lỗi sau:
switch: Expected exactly one argument, got 0
Rõ ràng nó hy vọng một cuộc tranh cãi, tôi chỉ không biết cú pháp cho nói cho nó để chấp nhận không có đối số , hoặc một nếu nó tồn tại.
Tôi đoán điều này là khá cơ bản, nhưng tôi không hiểu shell scripting rất tốt.
Đó là hữu ích hơn nếu bạn gửi các thông báo lỗi cụ thể. Đã thêm –
. xin lỗi vì điều đó. – michaelmichael