J'ai créé un fichier crontab qui exécutera un script bash test.sh. Ce fichier test.sh nécessite une entrée de l'utilisateur et enregistre l'entrée de l'utilisateur dans une variable. Comment puis-je m'assurer que l'entrée de l'utilisateur sera enregistrée dans une variable dans test.sh, et quand crontab exécute le script, je peux obtenir la sortie que je veux? Par exemple, j'ai 2 fichiers, fichier1.sh et fichier2.sh. Je mets file2.sh dans le fichier 1.sh. Je lance ensuite file1.sh, récupère l'entrée de l'utilisateur et l'enregistre quelque part. crontab exécutera file2.sh et récupèrera la valeur de la variable "enregistrée quelque part". est-ce qu'il y a de toute façon pour ça?Exécuter crontab avec l'entrée utilisateur
3
A
Répondre
5
Si l'entrée est lue par le script à partir de stdin
, il suffit de rediriger l'entrée à partir d'un fichier (à l'aide d'un script wrapper).
#! /bin/sh
test.sh < data.in
Si cela ne fonctionne pas pour vous (vous avez votre script appelant un certain programme shell interactif comme telnet, vous pouvez utiliser Expect
pour automatiser l'interaction.
0
Cela semble être une chose étrange à faire. Posez-vous ces questions:
voulez-vous vraiment un pop-up demandant à l'utilisateur une valeur d'entrée chaque fois que l'action sera exécutée
ce qui arrive quand il n'y a personne au clavier
01?
1
file1.sh
obtient l'entrée d'utilisateur et écrit à/etc/file2.dat
file2.sh
lit/etc/file2.dat
et fait tout ce dont il a besoin
Questions connexes
- 1. Comment déléguer dans un crontab pour utiliser un autre fichier comme crontab? aka Crontab dans SVN/CVS?
- 2. Est-il possible de faire exécuter un fichier Bash en tant que root dans crontab?
- 3. Un utilisateur ne peut pas exécuter l'application
- 4. Exécuter plusieurs threads de l'interface utilisateur
- 5. Comment obtenir des emails colorés de crontab?
- 6. 'Exécuter sous ...' ne crée pas correctement l'environnement utilisateur
- 7. Comment augmenter le timeout pour un cronjob/crontab?
- 8. Aller écrous avec l'exécution de script python via crontab sur debian!
- 9. Comment configurer un crontab pour qu'il s'exécute à un moment précis
- 10. Commandes utilisateur multiples avec Javascript
- 11. Gérer l'entrée utilisateur avec Raphael
- 12. Définir l'état utilisateur avec intégration
- 13. SSRS avec interface utilisateur Web personnalisée
- 14. Comment créer et exécuter Xcode avec Applescript?
- 15. Exécuter laika dans netbeans avec jruby 1.1.6
- 16. Pouvez-vous exécuter Glassfish avec JRockit?
- 17. Remote tar.gz avec SQL Server local exécuter
- 18. ASP exécuter la procédure stockée avec Null
- 19. exécuter django avec xampp sur windows
- 20. Appel d'un processus externe avec un utilisateur différent dans Java
- 21. contextsensitive RoutedUICommand.CanExecute, Exécuter
- 22. audit LINQ utilisateur actuel avec l'application web
- 23. ActionScript 3.0: comment exécuter une fonction lorsqu'un utilisateur saisit du texte?
- 24. Comment exécuter un flux de travail sur un élément inséré par un utilisateur anonyme
- 25. MS SQL Server: vérifier si un utilisateur peut exécuter une procédure stockée
- 26. Exécuter UPDATE et définir une variable utilisateur en une seule requête
- 27. Gestion des sessions utilisateur avec Mochiweb
- 28. ASP.NET Contrôle utilisateur avec ASP: CreateUserWizard
- 29. ssh-keygen avec utilisateur différent pour subversion
- 30. Création d'une interface utilisateur dynamique avec C#?
si j'ai pour 2 par exemple, les fichiers file1.sh et file2.sh. Je mets file2.sh dans le fichier 1.sh. Je lance ensuite file1.sh, récupère l'entrée de l'utilisateur et l'enregistre quelque part. crontab exécutera file2.sh et récupérera la valeur de * la variable quelque part enregistrée *. est-ce qu'il y a de toute façon pour ça? – Herves
J'ai rencontré un cas où cela serait utile: un script de commit git automatisé. Le cron s'exécute très fréquemment, mais le popup n'est requis qu'occasionnellement (par simple simplification, s'il y a des changements à commettre et que rien n'a changé depuis au moins 5 minutes). Ce qui serait bien, ce serait une entrée de l'utilisateur pour saisir un message de validation afin que tout n'ait pas un message "auto commit". Si l'entrée de l'utilisateur n'est pas reçue après une certaine période de temps, le script devrait revenir à une valeur par défaut. –