comando di lettura con timeout per input non terminale in bash


1

Il readcomando in bash è usato per l'input dell'utente. L'opzione -t Nrichiama il timeout di N secondi. Ma, come menzionato nella pagina man,

Questa opzione non ha alcun effetto se read non legge l'input dal terminale o da una pipe.

Ma questo è esattamente ciò di cui ho bisogno: ho bisogno di uno script che viene avviato tramite un collegamento sul desktop (non dal terminale) e che debba attendere un secondo per un singolo tasto per decidere ulteriori azioni. Come posso fare in modo che lo script bash aspetti un po 'l'input dell'utente in questo caso?


1
L'input dell'utente proviene dal terminale, quindi l'estratto citato non è rilevante; si riferisce ad esempio all'esecuzione dello script con input reindirizzato proveniente da un file. Potrebbe essere necessario utilizzare bash /c ScriptFilela scorciatoia per essere sicuri di vedere la shell.
AFH,

Risposte:


0

Utilizzare il comando di timeout prima del comando di lettura.

Syntax:timeout [OPTION] NUMBER[SUFFIX] COMMAND [ARG]...
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.