The UNIX and Linux Forums  

Go Back   UNIX e Linux Forum > Inizio Forum > Shell scripting e di programmazione
.
google unix.com



Shell scripting e di programmazione Pubblica domande su KSH, CSH, SH, Bash, Perl, PHP, sed, awk e da altri script di shell e linguaggi di scripting shell qui.

Più di UNIX e Linux Forum Argomenti potreste trovare utili
Filo Thread Starter Forum Risposte Ultimo Post
[C] problema con fgets SIGINT singlal! hurricane86 Di programmazione ad alto livello 1 01-02-2009 12:04 PM
passando dal variabile di perl da bash script bash arsidh Shell scripting e di programmazione 10 06-04-2008 01:25 PM
Problema con la manipolazione SIGINT JamesGoh Di programmazione ad alto livello 3 02-24-2008 10:39 PM
Non riesce a rompere SIGINT mentre seriale condizione si verifica gzz Di programmazione ad alto livello 13 11-23-2007 08:06 AM
AIX intercettare le chiamate di sistema ramkumar.pvs AIX 2 09-29-2006 03:17 AM

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 Cerca in questo Thread Rate Thread Modalità di visualizzazione
  #1 (permalink)  
Old 07-01-2009
Starcast Starcast is offline
Utente Registrato
  
 

Iscriviti Data: gennaio 2009
Località: Minneapolis, MN
Interventi: 13
Intercettazione SIGINT in un script bash

Ho scritto uno script bash che cattura video con DVgrab. A causa della natura dei nastri che io sono di digitalizzazione, a volte vorrei smettere di catturare la prima volta che ho impostato per DVgrab. In questo caso ho premere Ctrl-c e DVgrab esce pulito, il mio problema è che non vi sia informazioni supplementari che lo script stampa nel terminale con 'echo', quando lo script viene eseguito fino a quando il tempo impostato. Quando ho Ctrl-c nessuna di queste informazioni stampa ...

C'è un modo per intercettare il SIGINT (Penso che questo è ciò che voglio, ma potrebbe essere sbagliato) e farlo funzionare esattamente come avviene per impostazione predefinita, ma anche qualche eco varibles nel terminale?

Preferibilmente vorrei farlo solo nel mio script ... e non per effetto di modo Ctrl-c funzioni a livello di sistema.

Non sono sicuro se è importante, ma in base alla mia prima lettura di questo post non ero sicuro, ma ho eseguito questo script in un terminale virtuale in gnome su Ubuntu (8,10) macchina Linux

I bit che volevo aggiungere Ctrl-C quando viene premuto simile a questo:


Codice:
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"

Grazie in anticipo!
-Starcast
  #2 (permalink)  
Old 07-01-2009
Jim McNamara jim mcnamara is offline Forum Staff  
...@...
  
 

Iscriviti Data: febbraio 2004
Ubicazione: MN
Messaggi: 5.805

Codice:
#!/bin/bash
trap 'echo "Control-C disabled." ' 2
... your code here.

  #3 (permalink)  
Old 07-01-2009
Starcast Starcast is offline
Utente Registrato
  
 

Iscriviti Data: gennaio 2009
Località: Minneapolis, MN
Interventi: 13
Ho finito per renderlo simile a questa, ma ciò che mi avete dato necessario per arrivare, grazie.


Codice:
#!/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  
...@...
  
 

Iscriviti Data: febbraio 2004
Ubicazione: MN
Messaggi: 5.805

Codice:
trap "some command goes here" 0

esegue uno script della shell di uscita sul
  #5 (permalink)  
Old 07-01-2009
Starcast Starcast is offline
Utente Registrato
  
 

Iscriviti Data: gennaio 2009
Località: Minneapolis, MN
Interventi: 13
Sì, vedo che .... Ho appena finito un nastro 2 ore e il mio avvertimento poped dopo che correva per il pieno e tempo assegnato usciti normalmente ...

Ho cambiato il -2 - a -0 - solo indovinando e ho pensato che stava lavorando .... (Non posso per la vita di me trovare un elenco di 'trappola opzioni' spiegare cosa ogni numero qui farebbe?) Ho acceso perché il -2 - opzione non è la fine dello script? È inserito il mio codice di stampa, ma non riportare il prompt, ma solo continua lo script?

Posta ---------- aggiornato a 04:50 PM ---------- precedente aggiornamento è stato a 04:27 PM ----------

Ok, ho parlato troppo presto. il -2 - opzione non interrompere DVgrab (non uscire dal copione, quando i premere Ctrl-c prima il punto in cui lo script DVgrab quando inizia .... Quale è bene, tranne, mi hanno anche una funzione che esegue un conto alla rovescia in il mio script, e questo alla rovescia continua anche dopo Ctrl-c ... Il conto alla rovescia funzione è simile a questa:


Codice:
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 "        "
}

C'è qualcosa che ho potuto includere nel-mio-trappola codice che uccidere questa funzione e stampare il mio avviso?

Grazie
-Starcast
  #6 (permalink)  
Old 07-06-2009
Starcast Starcast is offline
Utente Registrato
  
 

Iscriviti Data: gennaio 2009
Località: Minneapolis, MN
Interventi: 13
Ok, così ho girato il mio cervello e capito la mia soluzione ... Odio quando mi cattura me sempre pigri qui ...

Per chi segue il filo, questo fa quello che ho descritto bisogno

Codice:
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

Ah, ho aggiunto il 'sonno' per conto DVgrab per l'uscita di informazioni che la stampa ... altrimenti mi è stato sempre poche righe stampate dopo l'avviso ...

E ho aggiunto 'uscita' alla fine in modo che lo script non continuare dopo l'abbattimento funzione il conto alla rovescia

-Starcast
Reply

Segnalibri

Thread Tools Cerca in questo Thread
Cerca in questo Thread:

Ricerca Avanzata
Modalità di visualizzazione Vota questo thread
Vota questo thread:

Distacco regolamento
Tu non può post nuovo thread
Tu non può inviare una risposta
Tu non può postare allegati
Tu non può modificare i tuoi post

BB codice è Su
Smilies sono Su
[IMG] codice Su
Codice HTML è Chiuso
Trackbacks sono Su
Pingbacks sono Su
Refbacks sono Su




Tutti gli orari sono GMT -4. La data di oggi è 10:52 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traduzioni Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX e Linux Forum Content Copyright © 1993-2009. Tutti i diritti Reserved.Ad di gestione da RedTyger

Contenuti pertinenti URL da vBSEO 3.2.0