我正在撰寫一個如下的 bash 腳本,它運行并給我如下輸出。
輸出:
4
3
但我的預期輸出如下。有人可以指出我哪里出錯了。提前致謝。
1
2
3
4
#!/bin/bash
region=('eu-central-1' 'us-east-1')
envs=('prod' 'stage')
for regions in "${region[@]}"; do
for env in "${envs[@]}"; do
if [ "${regions[*]}" == "eu-central" ] && [[ "${env[*]}" == "stage" ]]; then
echo 1
elif [ "${regions[*]}" == "eu-central" ] && [[ "${env[*]}" == "prod" ]]; then
echo 2
elif [ "${regions[*]}" == "us-east-1" ] && [[ "${env[*]}" == "stage" ]]; then
echo 3
elif [ "${regions[*]}" == "us-east-1" ] && [[ "${env[*]}" == "prod" ]]; then
echo 4
fi
done
done
uj5u.com熱心網友回復:
- 您正在比較,
eu-central但陣列包括eu-central-1 - 您沒有使用回圈變數,而是
"${regions[*]}"使用"$regions" - 正確縮進你的腳本
應用上述給我們:
#!/bin/bash
for regions in "${region[@]}"; do
for env in "${envs[@]}"; do
if [ "$regions" == "eu-central-1" ] && [[ "${env[*]}" == "stage" ]]; then
echo 1
elif [ "$regions" == "eu-central-1" ] && [[ "$env" == "prod" ]]; then
echo 2
elif [ "$regions" == "us-east-1" ] && [[ "$env" == "stage" ]]; then
echo 3
elif [ "$regions" == "us-east-1" ] && [[ "$env" == "prod" ]]; then
echo 4
fi
done
done
2
1
4
3
在線嘗試!
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/478111.html
上一篇:在檔案夾串列中查找檔案夾位置編號
