Tôi phải thực thi một hàm phải kiểm tra nếu một biến đã được xác định chính xác trong bash và phải sử dụng giá trị liên quan của nó.Làm thế nào để kiểm tra nếu một biến tồn tại và đã được khởi tạo
Ví dụ: các biến này được khởi tạo ở đầu tập lệnh.
#!/bin/bash
var1_ID=0x04
var2_ID=0x05
var3_ID=0x06
var4_ID=0x09
Tôi muốn gọi kịch bản được đặt tên thử nghiệm như sau:
./test var1
Chức năng thực hiện hiện nay là:
function Get()
{
if [ $1"_ID" != "" ]; then
echo "here"
echo $(($1_ID))
else
exit 0
fi
}
Tôi không hiểu tại sao tôi có được ngay cả khi here
Tôi nhập ./test toto
hoặc thứ khác.
Tôi có cần sử dụng một lệnh cụ thể, chẳng hạn như grep
không?
Liên quan: [Làm thế nào để kiểm tra nếu một biến được định nghĩa ở tất cả trong Bash trước phiên bản 4.2 với tùy chọn trình bao nounset?] (Http://unix.stackexchange.com/a/56846/40596) – fedorqui
Dường như không có ai đã tuyên bố điều này, nhưng '$ 1" _ID "' sẽ đánh giá thành '" _ID "' nếu '$ 1' không tồn tại. Và do đó sẽ luôn luôn là '! = Đến" "' –