![]() |
Hallo en welkom van de Verenigde Staten aan de UNIX en Linux Forum! Bedankt voor uw bezoek en Deelnemen aan onze wereldwijde gemeenschap.
|
|
google unix.com
|
|||||||
| Forums | Registreer | Forum Regels | Links | Albums | Veelgestelde vragen | Ledenlijst | Kalender | Zoeken | Today's Posts | Markeer forums als gelezen |
| 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 |
![]() |
|
|
LinkBack | Thread Tools | Zoeken in deze Thread | Rate Thread | Display Modes |
|
|
|
||||
|
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" -Starcast |
|
||||
|
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 |
|
||||
|
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 " "
}
Bedankt -Starcast |
|
||||
|
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 En ik toegevoegd 'afslag' aan het eind, zodat het script niet verder na het doden van de countdown-functie -Starcast |
![]() |
| Bladwijzers |
| Thread Tools | Zoeken in deze Thread |
| Display Modes | Beoordeel deze draad |
|
|