몇 가지 deb 패키지 파일을 작성 중인데 하나를 얻고 싶은 경우가 많이 있습니다.이상사용자의 임의 문자열 값(즉, 다중 선택 아님). 현재로서는 이 작업을 수행할 수 있는 방법이 없으며 이것이 가능한지 궁금합니다.
예를 들어 시스템에 대한 관리 사용자 풀을 설정하는 경우가 있습니다. 이 경우 다음과 같이 질문할 수 있습니다.
$ Please add a user:
$
$ username: someuser
$ password:
$ password set successfully
$
$ User "someuser" successfully added. Would you like to add another? [y,n]: y
$
$ username: notheruser
$ password:
$ password set successfully
$
$ Use "notheruser" successfully added.....
아마도 이것은 사용자에 대한 배열과 비밀번호에 대한 일치하는 배열을 생성할 것입니다. (참고: 다소 조작된 예이므로 이 특정 사용 사례가 좋은 아이디어인지 여부에 대한 논의에는 관심이 없습니다.)
이 문제를 해결하기 위한 커뮤니티 컨벤션이 있나요? 내가 모르는 confmodule 솔루션이 있나요?
답변1
좋습니다. 이 작업을 수행하는 좋은 방법은 없는 것 같습니다. 나는 이 답변을 (수락하지는 않지만)가능한제가 단기적으로 사용할 솔루션입니다.
간단한 배열 답변을 공백으로 구분된 목록으로 수집한 다음 다음과 같이 bash 배열로 구문 분석할 수 있습니다.
$ read ANS
$ these are four values
$ ANS=($ANS)
$ for a in "${ANS[@]}" do
$ echo "Answer: $a"
$ done
$
$ # Outputs:
$ #
$ # Answer: these
$ # Answer: are
$ # Answer: four
$ # Answer: values
분명히 이보다 더 복잡한 작업을 수행해야 한다면 망할 것입니다. 공백이 포함된 값을 허용하려면 사용자에게 해당 값을 인용한 다음 eval
들어오는 값을 사용하여 배열로 변환하도록 요청할 수 있습니다.
$ read ANS
$ these are 'four or five' values
$ eval "ANS=($ANS)"
$ for a in "${ANS[@]}" do
$ echo "Answer: $a"
$ done
$
$ # Outputs:
$ #
$ # Answer: these
$ # Answer: are
$ # Answer: four or five
$ # Answer: values
다시 말하지만, 이상적이지는 않지만 그것이 내가 지금까지 얻은 것입니다.