주 목록을 읽는 스크립트가 있는데 while 루프를 사용하여 List A
이라고 부릅니다.bash 스크립팅 - 여러 조건을 처리하기위한 효과적인 사례 문 작성 방법
목록 A :
east-1-1
east-1-3
east-1-7
west-1-10
south-1-2
내 case
내 case
과 해당 항목 각각에 대해 나열된 : 내가하고 싶은 무엇
east-1-1
east-1-2
east-1-3
east-1-4
east-1-5
east-1-6
east-1-7
west-1-1
west-1-10
south-1-1
south-1-2
north-1-1
이 목록에 대해 그것을 확인입니다 나는 아래로 깃발을 달고 싶다 *
case "${cluster}" in
east-1-1)
echo "${cluster}:${getCount} * ";;
east-1-3)
echo "${cluster}:${getCount} * ";;
east-1-7)
echo "${cluster}:${getCount} * ";;
west-1-10)
echo "${cluster}:${getCount} * ";;
south-1-2)
echo "${cluster}:${getCount} * ";;
esac
함수 내에서이 작업을 수행하고 case
문을 사용하고 있지만이 방법이 잘못되어 더 나은 방법이 있는지 알고 싶습니다. if-then-else
을 사용해야합니까? case
으로이 작업을 수행 할 수 있습니까?
내가이 접근법에 대해 도움이되거나 더 좋은 방법을 쓸 수 있다면 바랍니다. 진행 중
CODE :
#!/usr/local/bin/bash
MAP=./.clusterinfo
if ! [ -f "$MAP" ]; then
echo "Cluster Map not found."
exit 1
fi
while IFS='' read -r cluster; do
#Function runQuery
runQuery()
{
getCount=$(PGPASSWORD=Abc123Pa55word psql -h myapp-"${cluster}".foobar.com -U foo -d dev -p 5439 -t -c "select count(*) from pg_database;")
case "${cluster}" in
east-1-1)
echo "${cluster}:${getCount} * ";;
east-1-3)
echo "${cluster}:${getCount} * ";;
east-1-7)
echo "${cluster}:${getCount} * ";;
west-1-10)
echo "${cluster}:${getCount} * ";;
south-1-2)
echo "${cluster}:${getCount} * ";;
esac
echo "${cluster}:${getCount}"
}
#Execute
runQuery
done < "$MAP"
전류 출력 :
east-1-1: 50 *
east-1-1: 50
east-1-2: 8
east-1-3: 58 *
east-1-3: 58
east-1-4: 5
east-1-5: 5
east-1-6: 4
east-1-7: 30 *
east-1-7: 30
west-1-1: 4
west-1-10: 50 *
west-1-10: 50
south-1-2: 30 *
south-1-2: 30
예상 출력 :
east-1-1: 50 *
east-1-2: 8
east-1-3: 58 *
east-1-4: 5
east-1-5: 5
east-1-6: 4
east-1-7: 30 *
west-1-1: 4
west-1-10: 50 *
south-1-2: 30 *
글쎄, 그게 다야! 그 점을 지적 해 주셔서 감사합니다! 그것은 지금 잘 작동합니다. – noober