이미 비슷한 질문이 있지만 답변이 없기 때문에 게시하고 있습니다. 아치 시스템에 pacman 및 AUR 패키지 설치를 자동화하는 bash 스크립트를 작성 중입니다. 아이디어는 패키지 이름이있는 파일 (myfile)을 한 줄씩 읽은 다음 한 단어 씩 읽고 각 단어마다 설치를 수행하는 것입니다. 이것은 pacman에는 잘 작동하지만 AUR 도우미 (aurman)에는 적합하지 않습니다. aurman의 부분은 다음과 같습니다.
while read line; do
if [[ "$line" =~ \$[[:space:]]aurman[[:space:]]-S[[:space:]][[:alnum:]]* ]]
then
aurline=$(echo "$line" | awk '{ $1=""; $2=""; $3=""; print}' | sed 's/^ *//')
for aurpkg in $aurline
do
sudo -u "${my_user}" bash << EOF
aurman -S --noconfirm --needed --noedit "$aurpkg"
wait
EOF
done
fi
done < "$myfile"
--noconfirm --needed --noedit aurman 옵션을 사용하면 예 / 아니요를 묻는 메시지가 표시되지 않지만 일부 패키지의 경우 숫자를 묻는 메시지가 표시됩니다. 따라서이 경우 스크립트가 기다리지 않고 패키지가 설치되지 않고 aurman이 "EOFError : EOFError : EOFError when a line을 읽을 때"오류가 발생합니다. 다음과 같이 스크립트를 일시 중지하려고했습니다.
aurman ...
wait
또는 이와 같이 :
aurman ... &
wait
그러나 이들 중 어느 것도 작동하지 않습니다.
aurman이 전화 번호를 물을 때 어떻게 스크립트를 일시 중지시킬 수 있습니까? 이런 경우 일반적인 접근 방식은 무엇입니까? 스크립트를 실행할 때 처음부터 특정 패키지에 대해 어떻게 대답 할 수 있습니까 (예 : 패키지 x의 경우 1)?
aurman
모르겠지만 어쩌면expect
필요한 도구 일 것 입니다. 참조man 1 expect
및 이 대답 .