Có ai biết cách thực hiện nhiều câu lệnh trong một bài kiểm tra bash không? Vì vậy, nếu tôi sử dụng:Cách để thực hiện nhiều câu lệnh cho mỗi bài kiểm tra bash && statement
[[ $Var = 1 ]] && echo "yes-1" || echo "no-1"
Và thiết Var=1
sau đó đầu ra là: yes-1
Nếu tôi đặt Var=2
sau đó đầu ra là: no-1
Và công việc này như tôi mong đợi. Nhưng nếu tôi cố gắng thêm một câu lệnh khác để thực thi trong bản mix và nó không hoạt động:
[[ $Var = 1 ]] && echo "yes-1";echo "yes-2" || echo "no-1";echo "no-2"
Điều này có nghĩa là bash thấy lệnh kết thúc tại; nhưng ... đây không phải là điều tôi muốn.
Tôi đã thử nhóm và tìm kiếm các chức năng và đã thất bại và thành công nhưng tôi thực sự chỉ muốn làm là có công việc này trên một dòng. Ai có ý tưởng gì không?
Cảm ơn tôi đã thử một cái gì đó như thế này nhưng phải bỏ lỡ ";" ở cuối câu lệnh thứ hai. –
Tôi đã cung cấp cho bạn câu trả lời đúng vì ";" ở cuối mỗi câu lệnh, nó làm việc với hoặc() subshell hoặc {} grouping. –
IMO, nhóm lệnh tốt hơn, trong hầu hết các trường hợp. ví dụ. nếu bạn muốn thoát khỏi một kịch bản khi một cái gì đó không thành công bạn có thể làm 'foocmd || {echo foo không thành công; thoát 1; } 'và nó sẽ in chẩn đoán và thoát. Nếu bạn sử dụng subshells để nhóm, chỉ có subshell chính nó sẽ thoát, không phải là scipt, mà gần như chắc chắn không phải là hiệu ứng dự định. – JVMATL