redis-cliมีปัญหากับ ฉันต้องการตรวจสอบว่าการเชื่อมต่อกับredisถูกปฏิเสธ (เซิร์ฟเวอร์ดาวน์) ผ่าน BASH หรือไม่
ทดสอบอย่างง่าย
#!/bin/bash
test=$(redis-cli exit) #exit out of the "not connected console"
if [[ -z $test ]] ; then
echo "I'm empty :("
fi
ฉันคาดว่าCould not connect to Redis at 127.0.0.1:6379: Connection refusedจะถูกเก็บไว้ในการทดสอบ $ แต่ข้อความนี้จะถูกส่งออกไปยังคอนโซลแทน
ฉันไม่แน่ใจว่าเกิดอะไรขึ้น ใครมีความคิดเห็นบ้าง
(Ubuntu 14.04.1)
ฉันคิดว่าทุบตีรุ่นที่ใหม่กว่าจัดการที่ ดูเหมือนว่าจะทำงานในการทดสอบของฉันต่อไป
—
DarkNeuron
ถ้าอย่างนั้นดีสำหรับคุณ :-) ฉันมักจะชอบตาข่ายความปลอดภัยเพิ่มเติมถ้าไม่มีอะไรอื่นที่จะรักษาสติของฉันเมื่อดูรหัสในภายหลัง ...
—
CVn
if [[ -z $test ]]จะขยายเป็นเกือบแน่นอนif [[ -z ]]เมื่อ$testว่างเปล่าซึ่งดูเหมือนว่าจะทำให้เกิดเงื่อนไขif [[ -z "$test" ]] ; thenเพื่อป้องกันการนี้เพียงแค่ใส่ตัวแปรในคำพูด: