Teamspeak 3 클라이언트를 다운로드하고 동시에 라이센스 계약 루틴에 동의하려고 합니다. 나는 스크립트 전에 "예"를 전달하는 방법을 알고 있지만 루틴에서는 클라이언트 압축 풀기를 시작하기 위해 키를 Q클릭하기 전에 "라이센스 계약"을 종료하라는 키를 눌러야 합니다.Y
#!/bin/bash
cd /home/test/ts3_client_files
wget http://dl.4players.de/ts/releases/3.0.19.4/TeamSpeak3-Client-linux_amd64-3.0.19.4.run
yes 'y' | ./TeamSpeak3-Client-linux_amd64-3.0.19.4.run
보시다시피 루틴에는 Q첫 번째 누르기가 필요합니다. Q을 누르면 Y자동으로 가 눌러지고 파일의 압축이 풀립니다.
+ cd /home/test/ts3_client_files
+ wget http://dl.4players.de/ts/releases/3.0.19.4/TeamSpeak3-Client-linux_amd64-3.0.19.4.run
--2016-09-05 08:33:26-- http://dl.4players.de/ts/releases/3.0.19.4/TeamSpeak3-Client-linux_amd64-3.0.19.4.run
Resolving dl.4players.de (dl.4players.de)... 85.25.26.25, 85.25.26.26, 85.25.26.27
Connecting to dl.4players.de (dl.4players.de)|85.25.26.25|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 37054436 (35M) [application/x-makeself]
Saving to: ‘TeamSpeak3-Client-linux_amd64-3.0.19.4.run’
100%[=============================>] 37,054,436 9.56MB/s in 7.1s
2016-09-05 08:33:34 (4.96 MB/s) - ‘TeamSpeak3-Client-linux_amd64-3.0.19.4.run’ saved [37054436/37054436]
+ chmod 0700 TeamSpeak3-Client-linux_amd64-3.0.19.4.run
+ yes y
+ ./TeamSpeak3-Client-linux_amd64-3.0.19.4.run
Welcome to the TeamSpeak 3 Client for Linux on amd64 installer
In order to install this software you are required to accept the license
agreement, please press return to view the license.
You can scroll with the arrow keys and quit the viewer by pressing 'q'.
[RETURN]
Please type y to accept, n otherwise: Creating directory TeamSpeak3-Client-linux_amd64
Verifying archive integrity... All good.
Uncompressing TeamSpeak 3 Client for Linux on amd64 100%
+ exit
누군가 나에게 길을 안내해 주는데 그렇게 친절할까요?
답변1
키 q누르기는 호출기에 대한 종료 신호 역할을 하며 less
스크립트에서 명시적으로 사용됩니다.
read FOO
echo "$licensetxt" | less
while true
do
MS_Printf "Please type y to accept, n otherwise: "
read yn
if test x"$yn" = xn; then
keep=n
eval $finish; exit 1
break;
elif test x"$yn" = xy; then
break;
fi
done
그리고man less
말한다:
옵션은 환경 변수 "LESS"에서도 가져옵니다.
이 환경 변수를 다음과 같이 설정합니다.
printf '\ny\n' | LESS='+q' ./TeamSpeak3-Client-linux_amd64-3.0.19.4.run
다음에서 가져온 솔루션@steeldriver 님의 코멘트그리고에 따라 추가@JamesTheAwesomeDude의 법칙.