Bạn có thể sử dụng -z
để kiểm tra xem một biến là unset hoặc rỗng:
if [[ -z $DB || -z $HOST || -z $DATE ]]; then
echo 'one or more variables are undefined'
exit 1
fi
echo "You are good to go"
Như bạn đã sử dụng thẻ bash, tôi đã sử dụng một thử nghiệm mở rộng [[
, có nghĩa là tôi không cần sử dụng dấu ngoặc kép xung quanh các biến của tôi. Tôi giả định rằng bạn cần tất cả ba biến được xác định để tiếp tục. Các exit
trong chi nhánh if
có nghĩa là else
là thừa.
Cách thông thường để làm điều đó trong bất kỳ vỏ POSIX-compliant sẽ là như thế này:
if [ -z "$DB" ] || [ -z "$HOST" ] || [ -z "$DATE" ]; then
echo 'one or more variables are undefined'
exit 1
fi
Sự khác biệt quan trọng ở đây là rằng mỗi lần kiểm tra biến đi bên trong một thử nghiệm riêng biệt và dấu ngoặc kép được sử dụng xung quanh mỗi mở rộng tham số.
Nguồn
2015-03-26 14:05:18
cho biến kiểm tra có giá trị hay không [-z $ a -a -z $ b -a -z $ c] && echo "không có giá trị" || echo "ok tốt để đi!" – powershell