Bất cứ ai cũng có thể giải thích sự khác biệt giữa khai báo và sắp chữ với các ví dụ thực tế.
Bất cứ ai cũng có thể giải thích sự khác biệt giữa khai báo và sắp chữ với các ví dụ thực tế.
Câu trả lời:
Trong bash, typesetvà declarehoàn toàn giống nhau. Sự khác biệt duy nhất là typesetđược coi là lỗi thời.
typeset: typeset [-aAfFgilrtux] [-p] name[=value] ...
Set variable values and attributes.
Obsolete. See `help declare'.
Trang người đàn ông thậm chí liệt kê chúng trong cùng một hơi thở:
declare [-aAfFgilrtux] [-p] [name[=value] ...]
typeset [-aAfFgilrtux] [-p] [name[=value] ...]
Declare variables and/or give them attributes.
typesetlà di động cho một số vỏ khác, ví dụ , ksh93. Nếu bạn đang nhắm đến tính di động xuyên vỏ, hãy sử dụng typeset(và đảm bảo rằng cách bạn đang gọi nó là di động). Nếu bạn không quan tâm đến tính di động như vậy, hãy sử dụng declare.
help typeset, không phải trong man typeset.
typesetbị coi là lỗi thời?
Tôi biết một trường hợp declarehữu ích để tránh điều ác eval: biến đổi không định hướng :
$ var=foo
$ x=var
$ declare "$x=another_value"
$ echo $var
another_value
typesetvà declare?