Gần như mọi nơi tôi đã đọc, bao gồm hướng dẫn về phong cách tập lệnh bash của Google đề cập đến sự cần thiết phải trích dẫn các thay thế lệnh (trừ khi đặc biệt mong muốn tất nhiên).Có cần phải trích dẫn các thay thế lệnh trong khi gán biến trong bash không?
Tôi hiểu khi nào/ở đâu/tại sao trích dẫn thay thế lệnh trong quá trình sử dụng chung. Ví dụ: echo "$(cat <<< "* useless string *")"
hơn echo $(...)
Tuy nhiên đối với các bài tập biến đặc biệt, tôi đã thấy rất nhiều ví dụ như vậy: variable="$(command)"
Tuy nhiên, tôi đã không tìm thấy trường hợp variable=$(command)
là không tương đương.
variable="$(echo "*")"
và variable=$(echo "*")
cả hai đặt giá trị thành '*'.
Bất kỳ ai có thể đưa ra bất kỳ tình huống nào để rời khỏi sự thay thế không được kiểm soát trong quá trình xác định biến thực sự có gây ra sự cố không?
Câu hỏi hay! Tôi đã làm nhiều bài kiểm tra và có vẻ như chúng giống hệt nhau, không có sự khác biệt. – fedorqui
Tôi nghĩ rằng vấn đề anh ta yêu cầu có thể xảy ra với $ cmd, $ {cmd}. Thay thế và trong mệnh đề If, chúng ta cần "" ở đó. Vui lòng sửa nếu tôi sai –