Ok, donc courir gedit myfile.txt
fonctionne bien. Mais qu'en est-il de l'ouverture d'un fichier à partir d'un script bash, en utilisant l'application de bureau par défaut liée au type de fichier?
J'ai essayé ci-dessous, ce qui fonctionne très bien lorsqu'il est exécuté manuellement dans le terminal, mais quand je le mets dans un fichier bash, rien ne se passe:
#!/bin/bash
xdg-open "myfile.txt"&
Que dois-je faire à la place?
Veuillez noter que j'ai également besoin que le fichier reste ouvert après la fermeture du terminal.
gedit
avec le fichier répertorié (ou ouvre un nouvel onglet dans une session existante). Il revient cependant immédiatement, plutôt que de bloquer jusqu'à la fin du programme.xtg-open
sur*.txt
,*.html
et plus - juste ne fonctionnera pas.Réponses:
Je pense que votre script devrait fonctionner. Mais vous pourriez y ajouter quelque chose pour obtenir un peu plus d'informations:
lors de l'exécution de ce script (nommé my_open.sh) dans un terminal comme celui-ci:
J'obtiens la sortie suivante:
ce qui m'indique que le chemin d'accès au fichier est correct, le type MIME est reconnu et le fichier de bureau qui est utilisé pour ouvrir le fichier est également correct. Et gedit s'ouvre avec le fichier en question.
Maintenant, lorsque exécuté sur un autre fichier:
J'obtiens la sortie suivante:
Notez le type de mime différent et le fichier de bureau manquant. Néanmoins, xdg-open ouvre la valeur par défaut pour tous les fichiers texte (gedit).
Donc, vous voudrez peut-être ajouter quelque chose comme ça à votre script et voir si vous obtenez une sortie inattendue (que vous pouvez ensuite ajouter à votre question ...).
la source
finished script
à la fin. Je recommande [ catb.org/~esr/writings/taoup/html/[(L'art de la programmation Unix), la règle du silence. Btw .: Les backticks sont déconseillés - préférez $ (...) à la place, qui est emboîtable.nohup
ou&
, mais celaxdg-open
revient et vous permet de continuer.xdg-open
déjà, donc ce n'est pas un script de qualité de production de toute façon ...Créez un script bash test.sh comme:
Ensuite, rendez le script exécutable en tant que:
Enfin, exécutez le script en tant que:
la source
Peut - être gnome-open au lieu de xdg-open
la source
Vous allez dans la bonne direction. Si vous souhaitez que l'application gui reste ouverte lorsque vous fermez la fenêtre du terminal, il vous suffit d'ajouter un
nohup
au début de la ligne.Si l'application gui ne s'ouvre pas, c'est probablement parce que la
DISPLAY
variable d'environnement n'est pas définie dans le shell à partir de laquelle vous essayez de la lancer. Essayez de faire un écho$DISPLAY
la source
nohup
ni&
La première partie de votre question
avec la commande
cat
vous pouvez ouvrir un fichier à l'intérieur du terminal, si c'est ce que vous voulez (c'est indiqué dans la première partie de votre question).pour l'utiliser, vous pouvez simplement taper
cat FILENAME
.Les autres informations
Si vous avez besoin de plus de commandes: Voici une bonne liste de commandes.
Éditeur par défaut GNOME
Si vous souhaitez ouvrir le fichier dans l'application par défaut de GNOME
gedit
.pour l'utiliser, tapez simplement
gedit FILENAME
la source
gedit file.filetype
vous ouvrirez le fichier comme vous le souhaitez!Bien que je ne sois pas sûr de ce qui doit vraiment être accompli ici et sur la base de certains commentaires récents qu'un seul script devrait ouvrir N'IMPORTE QUEL fichier dans l'application par défaut ou dans quelle mesure l'application prend en charge cela.
Si c'est le cas, alors la façon la plus simple de le faire serait d'ouvrir un terminal et d'aller scriptname / path / to / filename ou s'il y a des espaces dans path, alors scriptname '/ path / to / filename'
Utilisez-le comme un script, vous pouvez utiliser n'importe quel nom que vous souhaitez pour le script, je vais utiliser openit1 comme exemple. Il est préférable d'utiliser des scripts directement à partir de ~ / bin pour ajouter un nombre à nommer, donc aucun conflit avec les commandes Linux existantes
Fermer gedit & dans le terminal
Redémarrez pour ajouter ~ / bin à votre $ PATH
Pour invoquer ouvrir un terminal et aller
SI comme orig indiqué & en utilisant l'orig. script pour un fichier particulier par script et invocation par d. clic gauche sur le script il vous suffit de choisir " Exécuter " au lieu de "Exécuter dans le terminal"
la source
Restart to add ~/bin to your $PATH
- euh, les vieilles habitudes de Windows? ;)