Lần đầu tiên tôi học cách viết mã bằng C
ngôn ngữ và sử dụng
if ( code )
then
code
fi
làm cho tôi rất khó đọc mã của mình (đừng hỏi tại sao). Có một sự thay thế cho then
?
Một cái gì đó như thế này:
if ( code ) {
code
}
fi
Lần đầu tiên tôi học cách viết mã bằng C
ngôn ngữ và sử dụng
if ( code )
then
code
fi
làm cho tôi rất khó đọc mã của mình (đừng hỏi tại sao). Có một sự thay thế cho then
?
Một cái gì đó như thế này:
if ( code ) {
code
}
fi
Câu trả lời:
Không có gì thay thế, nhưng bạn có thể sử dụng cả hai nếu bạn thực sự cần niềng răng:
if true ; then {
something
} fi
Điều đó sử dụng một nhóm lệnh rõ ràng không cần thiết làm cơ thể của then
khối. Bất kỳ lệnh nào trong dấu ngoặc nhọn sẽ chỉ được thực thi trong trình bao hiện tại khi then
chạy, chính xác như thể dấu ngoặc không có ở đó.
Tôi thực sự không đề xuất phong cách này nói chung hoặc mã mà người khác sẽ cần đọc, nhưng nó mang lại cho bạn những dấu ngoặc bạn muốn, và nó sẽ thực hiện được mẹo nếu bạn đang sử dụng một trình soạn thảo yêu cầu các khối giằng hoặc một cái gì đó như thế
{ if { [[ a == aa ]];};then { echo yes;};else { echo no;}; fi;}
- về cơ bản, khi bạn sử dụng bash
đủ, cú pháp tiêu chuẩn trở nên đủ quen thuộc, do đó nó không phải là vấn đề.
Bạn dường như được tìm kiếm vỏ C ( csh
, tcsh
, vv ...). Hãy lưu ý rằng các chuyên gia khuyên bạn nên chống lại nó để lập trình .
Tôi không chắc liệu phần mà bạn cho là không hấp dẫn có phải là thực tế then
nằm ở dòng sau không? Nếu vậy, hãy xem xét sử dụng phong cách sau:
if condition; then
stuff
fi
Tôi phải thừa nhận rằng các tên câu đánh vần ngược như fi
for if
và esac
for case
(nhưng không phải elihw
cho while
!) Là loại kỳ quặc. Nhưng đó là shell Bourne tiêu chuẩn, cú pháp shell di động nhất mà bạn có thể sử dụng.
then
hấp dẫn, chỉ là trình soạn thảo của tôi sẽ làm nổi bật {}
các cặp tương ứng và điều đó hữu ích khi tôi gặp một số lỗi vì sau đó tôi có thể dễ dàng xem tất cả các if
phát biểu của mình và xem có gì sai không .
vi
's %
lệnh mà nhảy đến khớp cú đúp / ngoặc / khung. Tôi thông cảm. Tôi nhớ vi
's %
lệnh khi lập trình bằng Python.
Có lẽ điều này dễ dàng hơn trên mắt:
[ condition ] && {
# statement 1
# statment 2
# ...
}
Khác hơn thế, chỉ cần làm quen với nó. Sử dụng thành ngữ của ngôn ngữ.
Sau đây là gần đó. Và kỳ lạ.
: if; { code; } && {
code
}
Cá nhân tôi không bao giờ thích ...
if true; then
more;fi
... hình thành bản thân Tôi thích nó khi các từ kiểm soát dẫn . Nó luôn luôn có vẻ kỳ lạ đối với tôi rằng ...;then
hình thức thịnh hành xuất hiện ở tất cả.
if this && that
then do these things too
else i will probably get upset
fi
Nó gần như hoàn toàn trái ngược với yêu cầu của bạn, nhưng đó là một cách khác để làm điều đó. Bạn cũng có thể giải quyết bất kỳ chuyển hướng mong muốn nào trên fi
đường dây khi cần thiết và chúng sẽ áp dụng cho toàn bộ khối.
if(...) {
, tức là để lại dấu ngoặc mở trên cùng một dòng như if
trong các ngôn ngữ giống như C.
if
lệnh, ngay cả khi trên dòng tiếp theo.
;
delim trong trường hợp đó. Đó là lý do tại sao họ làm.
:
shell dựng sẵn như thế này, chỉ cần một dòng mã có thể là byte gần với cú pháp C hơn, không nên được khuyến khích theo bất kỳ cách nào.
Tôi luôn luôn sử dụng:
if (code); then
code;
fi
Có lẽ không chính xác những gì bạn muốn nhưng nó giống một chút c.