Bash 比较在 while 循环中不起作用的字符串
Bash compare strings not working inside of while loop
我创建了这个 bash 脚本,但似乎无法弄清楚为什么我在 if 块中的代码没有执行。
db_instances_status="creating"
db_instances_status=$(makes api request to get value)
COUNTER=0
while [ $COUNTER -lt 1 ]; do
db_instances_status=$(makes api request to get value)
echo "$db_instances_status" # echos available
if [ "available" = "$db_instances_status" ]; then
# code never makes it here
dosomething()
break;
fi
sleep 30
done
我遵循了这个 How to compare strings in Bash
中的示例
这里https://tecadmin.net/tutorial/bash/examples/check-if-two-strings-are-equal/
您要么没有得到 if
语句,要么变量不包含您认为的内容。
此代码段将有助于调试...
while [ $COUNTER -lt 1 ]; do
echo "[DEBUG] getting status"
db_instances_status=$(makes api request to get value)
echo "[DEBUG] X${db_instances_status}X"
echo "$db_instances_status" # echos available
if [ "available" = "$db_instances_status" ]; then
我创建了这个 bash 脚本,但似乎无法弄清楚为什么我在 if 块中的代码没有执行。
db_instances_status="creating"
db_instances_status=$(makes api request to get value)
COUNTER=0
while [ $COUNTER -lt 1 ]; do
db_instances_status=$(makes api request to get value)
echo "$db_instances_status" # echos available
if [ "available" = "$db_instances_status" ]; then
# code never makes it here
dosomething()
break;
fi
sleep 30
done
我遵循了这个 How to compare strings in Bash
中的示例这里https://tecadmin.net/tutorial/bash/examples/check-if-two-strings-are-equal/
您要么没有得到 if
语句,要么变量不包含您认为的内容。
此代码段将有助于调试...
while [ $COUNTER -lt 1 ]; do
echo "[DEBUG] getting status"
db_instances_status=$(makes api request to get value)
echo "[DEBUG] X${db_instances_status}X"
echo "$db_instances_status" # echos available
if [ "available" = "$db_instances_status" ]; then