Y at-il un moyen facile dans bash pour débusquer l'input standard?
J'ai un script qui est couramment exécuté, et à un moment dans le script read est utilisé pour get des commentaires de l'user. Le problème est que la plupart des users exécutent ce script en copiant et en collant la command line à partir de la documentation Web. Ils incluent souvent certains espaces blancs, ou pire, une partie du text suivant la command exemple. Je veux ajuster le script pour simplement se débarrasser de la jonque supplémentaire avant d'afficher l'invite.
Ce thread sur les E / S non bloquantes dans bash peut aider.
Il suggère d'utiliser stty
et dd
.
Ou vous pouvez utiliser le bash
read
builtin avec l'option -t 0
.
# do your stuff # discard rest of input before exiting while read -t 0 notused; do read input echo "ignoring $input" done
Si vous ne souhaitez le faire que si l'user se trouve sur un terminal, essayez ceci:
# if we are at a terminal, discard rest of input before exiting if test -t 0; then while read -t 0 notused; do read input echo "ignoring $input" done fi