The UNIX and Linux Forums  
Hallo en welkom van de Verenigde Staten aan de UNIX en Linux Forum! Bedankt voor uw bezoek en Deelnemen aan onze wereldwijde gemeenschap.

Go Back   De Unix-en Linux Forum > Top Forums > Programmeren en Shell Scripting
.
google unix.com



Programmeren en Shell Scripting Post vragen over KSH, CSH, SH, Bash, Perl, PHP, sed, awk en andere shell scripts en shell scripting talen hier.

Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
Draad Thread Starter Forum Antwoorden Last Post
[C] fgets probleem met SIGINT singlal! hurricane86 Hoog Niveau Programmering 1 01-02-2009 12:04
passeren variabele vanuit bash te perl vanuit bash-script arsidh Programmeren en Shell Scripting 10 06-04-2008 12:25
Probleem met de behandeling van SIGINT JamesGoh Hoog Niveau Programmering 3 02-24-2008 10:39 PM
Kan niet vangen SIGINT terwijl seriële onderbreking optreedt gzz Hoog Niveau Programmering 13 11-23-2007 08:06
AIX aftappende system calls ramkumar.pvs AIX 2 09-29-2006 02:17

Reply
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Zoeken in deze Thread Rate Thread Display Modes
  #1 (permalink)  
Old 07-01-2009
Starcast Starcast is offline
Geregistreerde gebruiker
  
 

Join Date: Jan 2009
Plaats: Minneapolis, MN
Posts: 13
Aftappende SIGINT in een bash-script

Ik heb geschreven een bash script dat slaat video met DVgrab. Vanwege de aard van de banden dat ik digitaliseren, soms wil ik stoppen met het vastleggen van vóór de tijd dat ik heb ingesteld voor DVgrab. Wanneer dit het geval ik druk op Ctrl-C en DVgrab uitgangen netjes, mijn probleem is dat er aanvullende informatie die het script prenten in de terminal met een 'echo' wanneer het script loopt tot het ingestelde tijd. Toen ik op Ctrl-C geen van deze informatie afdrukken ...

Is er een manier om het onderscheppen van de SIGINT (Ik denk dat dit is wat ik wil, maar ik kan verkeerd zijn) en hebben zij werken precies zoals hij doet bij verstek, maar bovendien een echo een paar Variabelen in de terminal?

Liefst zou ik willen doen dit alleen in mijn script ... en geen invloed op de manier Ctrl-C functies systeem breed.

Niet zeker of het gebied, maar op basis van mijn lezing voorafgaand aan deze functie was ik niet zeker, maar ik dit script in een virtuele terminal in gnome op een Ubuntu (8,10) Linux-machine

Het beetje dat ik wilde toevoegen wanneer Ctrl-c wordt ingedrukt ziet er als volgt uit:

Code:
echo -e "\E[31;40m++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
echo "+               Warning - Capture Ended Early                           +"
echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
echo -e "\E[30;47m++ Format: $FORMAT    ++ Min Remaing on $destination : $minremain    "
echo "++ Deck: $deck_number          ++ Customer: $customer      " 
echo "++ Rec Time: $tape_length  ++ Tape: $tapename"
Thanks in advance!
-Starcast
  #2 (permalink)  
Old 07-01-2009
jim McNamara jim mcnamara is offline Forum Staff  
...@...
  
 

Join Date: Feb 2004
Locatie: NM
Berichten: 5.754
Code:
#!/bin/bash
trap 'echo "Control-C disabled." ' 2
... your code here.
  #3 (permalink)  
Old 07-01-2009
Starcast Starcast is offline
Geregistreerde gebruiker
  
 

Join Date: Jan 2009
Plaats: Minneapolis, MN
Posts: 13
Ik belandde waardoor het er als volgt uitzien, maar je gaf wat ik nodig had to get there, bedankt.

Code:
#!/bin/bash
trap 'echo -e "\E[31;40m\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n
+                   WARNING - Early Exit                         +\n
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\E[30;47m\n
++ Format: $FORMAT    ++ Min Remaing on $destination : $minremain    \n
++ Deck: $deck_number          ++ Customer: $customer      \n
++ Rec Time: $tape_length  ++ Tape: $tapename"' 0
-Starcast
  #4 (permalink)  
Old 07-01-2009
jim McNamara jim mcnamara is offline Forum Staff  
...@...
  
 

Join Date: Feb 2004
Locatie: NM
Berichten: 5.754
Code:
trap "some command goes here" 0
uitvoert op shell script afrit
  #5 (permalink)  
Old 07-01-2009
Starcast Starcast is offline
Geregistreerde gebruiker
  
 

Join Date: Jan 2009
Plaats: Minneapolis, MN
Posts: 13
Ja, ik zie dat .... Ik heb net een 2 uur tape en mijn waarschuwing poped na het liep voor de volledige toegewezen tijd en verlaten normaal ...

Ik veranderde de -2 - tot -0 - slechts gissen en ik vond het werkt .... (Ik kan niet voor het leven van mij vindt een lijst van 'val opties' te leggen wat elk nummer hier zou doen?) Ik ben overgestapt omdat de -2 - optie is niet de beëindiging van het script? Hij drukt mijn ingevoegd code, maar niet terug de prompt, alleen blijft het script?

---------- Post bijgewerkt op 04:50 PM ---------- Vorige update was op 04:27 uur ----------

Ok, ik sprak te vroeg. de -2 - optie is stoppen DVgrab (niet afrit het script als ik druk op Ctrl-C voor het punt in het script als DVgrab begint .... Welke is prima, behalve, ik heb ook een functie die loopt een countdown in mijn script, en dit blijft aftellen na Ctrl-C ... Het aftellen functie ziet er als volgt uit:

Code:
function countdown
{
        local OLD_IFS="${IFS}"
        IFS=":"
        local ARR=( $1 )
        local SECONDS=$((  (ARR[0] * 60 * 60) + (ARR[1] * 60) + ARR[2]  ))
        local START=$(date +%s)
        local END=$((START + SECONDS))
        local CUR=$START

        while [[ $CUR -lt $END ]]
        do
                CUR=$(date +%s)
                LEFT=$((END-CUR))

                printf "\r%02d:%02d:%02d" \
                        $((LEFT/3600)) $(( (LEFT/60)%60)) $((LEFT%60))

                sleep 1
        done
        IFS="${OLD_IFS}"
        echo "        "
}
Is er iets dat ik kan opnemen in mijn-val-code dat zou vermoorden van deze functie en print mijn waarschuwing?

Bedankt
-Starcast
  #6 (permalink)  
Old 07-06-2009
Starcast Starcast is offline
Geregistreerde gebruiker
  
 

Join Date: Jan 2009
Plaats: Minneapolis, MN
Posts: 13
Ok, dus ik mijn hersenen op en dacht dat mijn oplossing ... Ik haat het wanneer ik mezelf vangst krijgen lui hier ...

Voor iedereen die naar aanleiding van de discussie, dit is wat ik beschreven nodig
Code:
trap 'CUR=$END 
sleep 1 
echo -e "\E[31;40m\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
\n+                   WARNING - Early Exit                         +
\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
\E[30;47m\n++ Format: $FORMAT    ++ Min Remaing on $destination : $minremain    
\n++ Deck: $deck_number          ++ Customer: $customer      
\n++ Rec Time: $tape_length  ++ Tape: $tapename"
exit ' 2
Oh, ik nog de 'slaap' te goed voor DVgrab de afrit info dat het afdrukken ... anders was ik krijg een paar regels afgedrukt na de waarschuwing ...

En ik toegevoegd 'afslag' aan het eind, zodat het script niet verder na het doden van de countdown-functie

-Starcast
Reply

Bladwijzers

Thread Tools Zoeken in deze Thread
Zoeken in deze Thread:

Uitgebreid zoeken
Display Modes Beoordeel deze draad
Beoordeel deze draad:

Posting Regels
Jij mag niet Post Nieuwe threads
Jij mag niet na antwoorden
Jij mag niet post attachments
Jij mag niet bewerk uw berichten

BB code is Aan
Smilies zijn Aan
[IMG] code Aan
HTML-code is Uit
Trackbacks zijn Aan
Pingbacks zijn Aan
Refbacks zijn Aan




Alle tijden zijn GMT -4. Het is nu 01:11.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Vertalingen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
De Unix-en Linux Forums Copyright © 1993-2009. Alle rechten Reserved.Ad Beheer door RedTyger

Content Relevante URL's door vBSEO 3.2.0