![쉘 스크립트의 "옵션"은 어떻게 작동합니까?](https://linux55.com/image/24784/%EC%89%98%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%9D%98%20%22%EC%98%B5%EC%85%98%22%EC%9D%80%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%EC%9E%91%EB%8F%99%ED%95%A9%EB%8B%88%EA%B9%8C%3F.png)
여기 답변에서 일부 코드를 찾아 필요에 맞게 조정했지만 이제 두 가지 질문이 있습니다.
질문 1:Case 문의 코드가 완료된 후 옵션 텍스트를 표시하려면 어떻게 해야 합니까? 이렇게 하면 사용자가 옵션을 다시 볼 수 있습니다.
질문 2:스크립트를 실행할 때 각 옵션이 별도의 줄에 표시되도록 할 수 있습니까? 아직 아님.
options=(
"quit/exit"
"new rational db"
"run php for rational codebase"
"run php for playground codebase"
)
select option in "${options[@]}"; do
case "$REPLY" in
1) break;;
2) sudo -i -u db2inst1 bash -c "db2stop force;";;
3) rm /tmp/createDb2*;;
4) ;;
esac
done
답변1
Q1: 40자를 초과하려면 옵션 끝에 공백을 추가하세요. 예:
options=(
"quit/exit"
"new rational db"
"run php for rational codebase"
"run php for playground codebase "
)
Q2: 더 우아한 방법이 있는지 확실하지 않지만(에서는 본 적이 없음 help select
) 다음과 같이 하면 작동합니다.
finished=
while test ! "$finished"; do
select option in "${options[@]}"; do
case "$REPLY" in
1) finished=1;;
2) sudo -i -u db2inst1 bash -c "db2stop force;";;
3) rm /tmp/createDb2*;;
4) ;;
esac
break
done
done