已经有类似的问题,但我发布这个是因为没有一个答案有效。我正在编写一个 bash 脚本来自动在我的 Arch 系统上安装 pacman 和 AUR 包。这个想法是首先逐行读取包名称的文件(myfile),然后逐字读取并为每个单词执行安装。这适用于吃豆子,但不适用于 AUR Helper (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"
Run Code Online (Sandbox Code Playgroud)
使用选项--noconfirm --needed --noedit aurman 不会提示我输入是/否,但对于某些软件包,它会提示我输入一个数字。所以问题是在这种情况下脚本不等待,包没有被安装并且 aurman 产生错误“EOFError: EOF when reading a line”。我试图像这样暂停脚本:
aurman ...
wait
Run Code Online (Sandbox Code Playgroud)
或者像这样:
aurman ... …
Run Code Online (Sandbox Code Playgroud)