md5sum
私はcliのディレクトリ内で一意のファイルをインポートし、それを使用して進行状況バーを表示し、pv
gtkにスクリプトを作成するスクリプトを作成しようとしていますzenity
。
まあ、私が正しく動作しないものは次のとおりです。
zenity
進展。私は過去12時間にパーセントをファイルに逆順にリダイレクト
pv
し、ループで使用して進行状況バーを移動するためにファイルに新しい行が追加されるのを待つ方法を試みました。/tmp/zenity.prg
tac
cat
sleep 1
/tmp/zenity.prg
zenity
アイデアはGnome WebサイトZenityを使用した例:
( echo "10" ; sleep 1 echo "# Updating mail logs" ; sleep 1 echo "20" ; sleep 1 echo "# Resetting cron jobs" ; sleep 1 echo "50" ; sleep 1 echo "This line will just be ignored" ; sleep 1 echo "75" ; sleep 1 echo "# Rebooting system" ; sleep 1 echo "100" ; sleep 1 ) | zenity --progress \ --title="Update System Logs" \ --text="Scanning mail logs..." \ --percentage=0 if [ "$?" = -1 ] ; then zenity --error \ --text="Update canceled." fi
xfceで見つけたコードの一部(もし私がそれを見逃していなかったがコードのこの部分が私にうまくいかなかった場合)は複数のファイルのためのものです。
まあ、私の現在のコードは次のとおりです。
#!/usr/bin/env bash echo ' Autor ----------------> Inukaze ( Venezuela ) Sitio ----------------> https://goo.gl/ij6WqW Correo-E -------------> [email protected] Licencia -------------> GPL 2' #Variables Principales Archivo="$@" Cantidad=$(ls "$Archivo" | wc | awk '{print $1}') #Determinar Cantidad de Objetos if [[ $Cantidad -eq 1 ]]; then Cantidad=$Cantidad fi if [[ $Cantidad -gt 1 ]]; then Cantidad=$(ls "$PWD" | wc | awk '{print $1}') fi hash zenity 2>/dev/null if [[ $? != 0 ]]; then echo "Zenity no esta instalado!" echo "Por favor instale Zenity" exit 1 fi if [[ "$Cantidad" = "0" ]]; then zenity --error --text="Nada para calcular!" fi if [[ $Cantidad -eq 1 ]]; then (for Unico in "$Archivo"; do pv -- "$Unico" | md5sum | tee >(cut -d ' ' -f1 > /tmp/sumd5) | sed 's/-$//' | printf '%s%s\n' "$(cat -)" "$Unico" sed -n 'H; 1h; $!d; g; s/\\/\\\\/g; s/\n/\\n/g; t x; p; q; :x s/^/\\/; p;' done) & #Zenity (while [ -f /tmp/zenity.prg ] do cat "/tmp/zenity.prg" ; sleep 1 done) | zenity --progress --title="Suma de Integridad MD5" --text="Calculando MD5 de:\n${Archivo##*/}" --percentage=0 --auto-close 2>&1 | #Zenity if [ "$?" = -1 ] ; then zenity --error --text="Proceso Cancelado por el Usuario." rm -rf /tmp/sumd5 rm -rf /tmp/zenity.prg exit 0 fi sumd5=`cat /tmp/sumd5` zenity --info --title="Suma de Integridad MD5" --text="$sumd5\n\nArchivo:\n${Archivo##*/}" rm -rf /tmp/sumd5 rm -rf /tmp/zenity.prg exit 0 fi if [[ $Cantidad -gt 1 ]]; then if zenity --question --title="MD5sum" \ --text="Seleccion Multiple.\nEsto creara/reemplazara un archivo llamado <b>multiples.md5</b>\nen el directorio donde estan estos archivos.\n¿Desea Continuar?" \ --no-wrap then > multiples.md5 i=0 TOTAL="$Cuenta" while read -r line || [[ -n "$line" ]]; do ((++i)) PERCENT=$(($i*100/${TOTAL})) echo "#md5sum $i/$TOTAL: $line" md5sum "${line}" >> multiples.md5 2>&1 echo "$PERCENT" done < "$Archivo" | zenity --progress --title="MD5" --auto-close exo-open 'multiples.md5' || zenity --text-info --title="Sumas de Integridad : MD5" < multiples.md5 fi fi
スクリプトの主なアイデアはコンテキストメニューを使用して作業することですが、Thunar、Caja、Nautilus、Dolphinなどのファイルマネージャなしでスクリプトを操作することをお勧めします。