몇 가지 명령을 실행하는 정말 간단한 bash 스크립트를 만들었습니다. 이러한 명령 중 하나는 런타임 중에 사용자 입력이 필요합니다. 즉, 사용자에게 "당신이 blah blah blah?"라고 묻는다면, 스크립트가 완전히 자동화되도록 엔터 키를 누르기 만하면됩니다.
런타임 동안 입력이나 다른 것을 기다릴 필요가 없습니다. 키 누르기 만 보내기 만하면 입력 버퍼가 나머지를 처리합니다.
몇 가지 명령을 실행하는 정말 간단한 bash 스크립트를 만들었습니다. 이러한 명령 중 하나는 런타임 중에 사용자 입력이 필요합니다. 즉, 사용자에게 "당신이 blah blah blah?"라고 묻는다면, 스크립트가 완전히 자동화되도록 엔터 키를 누르기 만하면됩니다.
런타임 동안 입력이나 다른 것을 기다릴 필요가 없습니다. 키 누르기 만 보내기 만하면 입력 버퍼가 나머지를 처리합니다.
답변:
echo -ne '\n' | <yourfinecommandhere>
또는 에코가 생성하는 암시 적 개행 문자를 활용합니다 (Marcin에게 감사드립니다).
echo | <yourfinecommandhere>
이제 간단히 --sk
옵션을 사용할 수 있습니다.
--sk
,--skip-keypress
각 테스트 후 키 누르기를 기다리지 마십시오.
즉 sudo rkhunter --sk --checkall
xxd
하면 5c6e
리터럴 인 16 진수 를 얻습니다 \n
. 그렇게 echo | xxd
하면 실제로 16 진수로 끝납니다 0a
. 그래서 나는 당신의 프로그램에 필요한 것을 사용한다고 생각합니다.
0a0a
여전히 의도 한 바가 아닌 것을 얻습니다 -n
. 암시 적 개행을 추가합니다 . 그러나 당신은 물론 옳 echo | ...
습니다. 내 대답을 업데이트합니다.
5c6e
습니까? -e
또는 셸 을 생략 했습니까? 아니면 echo
해당 옵션을 처리하지 않습니까?
echo -ne "\n" | xxd 0000000: 0a
와 echo -n "\n" | xxd 0000000: 5c6e
와 echo "\n" | xxd 0000000: 5c6e 0a
나는 단일 및 이중 따옴표의 차이를 보지 못했어요. 내 셸은 일반 bash입니다. 이러한 기본 기능의 동작을 조절하는 설정이 있습니까?
yes
명령이 유용 할 수 있습니다 .
보다 man yes
yes
유용하다고 생각합니다.
yes
출력으로 보내는 내용을 변경할 수 있습니다 . 맨 페이지를 읽으십시오.
다음은 다음을 사용하는 샘플 사용입니다 expect
.
#!/usr/bin/expect
set timeout 360
spawn my_command # Replace with your command.
expect "Do you want to continue?" { send "\r" }
man expect
자세한 내용은 다음 을 확인 하십시오.
apt-get
인 경우 적절한 해결책은 선호하는 값으로 debconf 데이터베이스를 미리 시드하는 것입니다. 그러면 묻지 않을 것입니다.