opkg 설치의 설치 진행 상황을 확인하는 방법은 무엇입니까?

opkg 설치의 설치 진행 상황을 확인하는 방법은 무엇입니까?

다음을 사용하여 업그레이드를 설치하는 응용 프로그램을 작성 중입니다.opkg 포장 시스템.

진행률 표시줄을 만들 수 있도록 전체 진행 상황을 확인할 수 있는 방법이 있나요?

답변1

나는 opkg를 처음 접했고 그것이 기본 진행률 표시줄을 제공하는지 잘 모르겠습니다. 내가 본 것 중 가장 가까운 것은 -V자세한 내용입니다. 더 나은 솔루션이 없는 경우 다음 스크립트(예: 이름이 지정된 파일 jspb)를 저장하고 실행 가능하게 만든 다음( chmod u+x jspb) jspb opkg upgrade packagenameget을 호출할 수 있습니다.진행 표시 줄.

가지다더 나은 것진행률 표시줄을 만드는 방법이 있는데 뭔가를 쓰고 싶습니다.시뮬레이션진행 표시 줄. 여기에는 한 가지 주요 요구 사항이 있습니다. 즉, 제공한 작업의 진행 상황을 추적할 수 있도록 /proc 의사 파일 시스템이 있어야 한다는 것입니다. 그렇지 않으면 매우 간단하므로 대부분의 쉘에서 작동합니다(bash, ksh, dash 및 Bourne sh에서 테스트). 이식성이 매우 높기 때문에 shellcheck는 스크립트에서 사용되는 "구식" 및 "레거시" 구조에 대해 불평합니다. 이는 맞습니다. 화면의 열을 지능적으로 채웁니다. 업데이트 프로세스 중에 창 크기를 조정해 보세요!

#!/bin/sh

# Jeff's progress bar
# *simulates* a progress bar

# better options:
# https://github.com/Xfennec/progress
# http://www.theiling.de/projects/bar.html

if [ ! -n "$*" ]
then
  echo Nothing to do, exiting!
  exit 0
fi

if [ ! -d /proc/$$ ]
then
  echo Missing /proc, sorry
  exit 1
fi

sh -c "$*" &
PID=$!
# give the command a chance to fail immediately, if it will
sleep 1

# dash, Bourne sh do not have $RANDOM
HAVERANDOM=0
if [ -n "$RANDOM" ]
then
  HAVERANDOM=1
fi

i=1
while [ -d /proc/$PID ]
do
  # simulate progress
  if [ $HAVERANDOM ]
  then
    sleep `expr $RANDOM % 4`
  else
    sleep `expr $i % 4`
  fi

  # see if our window got resized
  cols=`tput cols`
  if [ $i -ge $cols ]
  then
    printf "\r"
    # clear out the old progress bar and start over!
    while [ $i -gt 1 ]
    do
      printf " "
      i=`expr $i - 1`
    done
    printf "\r"
  fi
  # making progress!
  printf "#"
  i=`expr $i + 1`
done

# only clear the progress bar it if we wrote something
if [ $i -gt 1 ]
then
  pacman=1
  printf "\r"
  while [ $pacman -lt $i ]
  do
    printf " "
    pacman=`expr $pacman + 1`
  done
  printf "\r"
fi

마스터 복사가 시작되었습니다.지텁

관련 정보