Bash의 선택에서 옵션을 선택하세요

Bash의 선택에서 옵션을 선택하세요

gem uninstall bundlerbash 스크립트를 실행하려고합니다 . 이 문제는 여러 번들러 버전이 설치되어 있을 때 발생합니다. 버전 번호를 묻는 메시지가 표시되며 마지막 옵션은 모든 번들러 버전을 제거하는 것입니다.

root@testuser:/home/test# gem uninstall bundler -x

Select gem to uninstall:
 1. bundler-1.13.7
 2. bundler-1.16.0
 3. All versions

All versions텍스트 앞에 표시된 숫자를 입력하고 싶습니다.

비슷한 일을 할 수 있다는 것을 알고 있지만 옵션이 3, 4 또는 임의의 숫자에 표시되는지는 echo -e '3' | gem uninstall bundler알 수 없습니다 . All versions그래서 저는 선택 옵션을 구문 분석한 다음 그 앞에 숫자를 넣는 솔루션을 찾고 있습니다.

답변1

or 옵션 gem uninstall과 함께 사용하면 다음에 설명된 대로 일치하는 모든 버전이 제거될 것이라고 생각합니다 .-a--all수동.

귀하의 경우:

gem uninstall bundler -a -x

답변2

나는 이것을 아직 시도하지 않았지만 gem uninstall bundler당신에게 도움이 될 수도 있습니다.

#launch your process in a subshell and direct the subshell output to a file
#yours will probably read (gem uninstall bundler -x) > count &

(echo title; echo "empty line"; echo "1. option"; echo "2. option" ; echo "3. All Versions"; sleep 10 ) > count &

pid=$!                                  #get the pid of the subshell
disown                                  #to avoid the untidy kill output
sleep 1                                 #just allow time for the subshell output
kill -9 $pid                            #kill the dummy process
option=$(grep -i "all versions" count | grep -Po "[^0-9]*[0-9]+")  
                                        #grab the option want from the output
rm count                                #tidy up
echo $option | gem etc....        #launch gem with the known option

관련 정보