Tôi đã đọc trang bash man về điều này, nhưng tôi không hiểu sự khác biệt. Tôi đã thử nghiệm cả hai và chúng dường như tạo ra kết quả chính xác.
Tôi muốn đặt giá trị mặc định của biến nếu giá trị không được đặt thông qua tham số dòng lệnh.
#!/bin/bash
var="$1"
var=${var:-word}
echo "$var"
Đoạn mã trên vang word
nếu $1
là null và lặp giá trị của $1
nếu không null. Vì vậy, thực hiện điều này:
#!/bin/bash
var="$1"
var=${var:=word}
echo "$var"
Theo trang người đàn ông Bash,
${parameter:-word}
Sử dụng Giá trị mặc định. Nếu tham số không được đặt hoặc null, thì việc mở rộng từ được thay thế. Nếu không, giá trị của tham số được thay thế.
${parameter:=word}
Gán giá trị mặc định. Nếu tham số không được đặt hoặc null, thì việc mở rộng từ được gán cho tham số. Giá trị của tham số sau đó được thay thế. Tham số vị trí và tham số đặc biệt có thể không được gán theo cách này.
Có phải chúng giống nhau và ${parameter:=word}
chỉ làm được nhiều hơn?
Đẹp và súc tích. – JAB
Giải thích tuyệt vời, tôi cũng thích rằng nó ngắn gọn và súc tích. Tôi đưa ra câu trả lời được chấp nhận cho Guilaume cho lời giải thích thêm và để có câu trả lời đầu tiên. Cảm ơn! –
cho biện pháp tốt, tôi upvoted câu trả lời này quá;) – Guillaume