[완료]쉘스크립트로 작성 progress를 표현하려고 하는데 도와주세요.

sasimi2001의 이미지

간단하게 지금 스크립트 짠 형식이

특정 숫자 입력 받으며
/ABC 디렉토리의 데이터 숫자만큼 삭제후(rm)
/EFG 디렉토리의 데이터를 숫자만큼 /ABC로 옮기는 형식입니다.(mv)
몇가지 제한하는 조건문하고 여러가지 추가적으로 있구요

현재 스크립트를 실행하면 rm 하고 mv 명령어에 -v 옵션을 줘서 삭제나 이동 상황이 보여지게 해놓은건데요.

보더니 지저분 하다고 그냥 작업은 백그라운드로 실행되게하고 작업상황은 퍼센트로 보여지게 만들어보라고 하네요..
(wget 할때 보여지는 것처럼 퍼센트와 #표시로 진행상황 알수 있게)

한번 반복문 떡칠해서 해보긴 했는데...이건 뭐 스크립트내용이 난장판이 되서 나중엔 뭐가 뭐지 저도 모르게 변했더라구요.

그래서 도움 요청합니다.

작업상황을 퍼센트와 Bar로 표현하는 스크립트 좋은 예제 있으면 좀 알려주세요.^^ 사이트도 괜찮습니다.
해답처럼 알려주시지 않아도 되구요 이런걸 참고해 보세요 하면 알아서 노력해 볼게요^^

아! 참고로 bash 쉘입니다.

cinsk의 이미지

#!/bin/sh
 
function hide_cursor() {
    echo -n `tput civis`
}
 
function show_cursor() {
    echo -n `tput cvvis`
}
 
function progress () {
    # Display a progress bar
    # usage: progress percentage
    #
    # PERCENTAGE should be in range between 0 and 100.
    # If PERCENTAGE is 100, this function returns 1, otherwise returns zero.
    echo -en "\r["
 
    inc=$1
    if test $inc -gt 100; then
        inc=100;
    fi
 
    num=`expr 40 \* "$inc" / 100`
    i=0
    while test $i -le $num; do
        echo -n "="
        i=`expr $i + 1`
    done
 
    while test $i -le 40; do
        echo -n " "
        i=`expr $i + 1`
    done
 
    echo -n "] $inc%"
 
    if test $inc -ge 100; then
        return 1
    else
        return 0
    fi
}
 
 
incr=0
hide_cursor
trap 'show_cursor; echo ""; exit 1' INT QUIT TERM EXIT
 
while progress $incr; do
    incr=`expr $incr + 10`
    sleep 1
done
 
echo ""
show_cursor

--
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://www.cinsk.org/cfaqs/

Hyun의 이미지

뭐, 프로그래스바가 아니라면 간단하게 이런것도...

[hyun@hyun ~]$ for ((i=1; i<100; i++)); do sleep 1; printf '%d/%d\r' $i 100; done


나도 세벌식을 씁니다
monovision의 이미지

sasimi2001의 이미지

감사합니다~^^ 참고하여 꼭 완성할게요~ㅎㅎ

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.