1 votes

Variables shell dans une application autonome de bash script.

J'ai un bash script qui monte un système de fichiers fuse créé avec l'outil de sauvegarde borg. Le montage du système de fichiers nécessite une passphrase. La commande mount de borg permet de lire la passphrase à partir d'un export dans mon script shell. Ainsi, les deux premières lignes de mon script sont quelque chose comme

#!/bin/bash
export BORG_PASSPHRASE='mypassphrase'

Puis je monte le système de fichiers avec la commande mount

borg mount user@server:/mntpoint::backup_repository /localmntpoint

Le script fonctionne parfaitement bien. Cependant, je voudrais créer une application autonome qui exécute ce script. J'ai donc appelé le script Borg et créé un répertoire Borg.app qui contient Contents et MacOS comme sous-répertoires et dans MacOS j'ai mis le shell Borg script. Cela semble être la manière habituelle de transformer un shell script en une application cliquable. Je suis conscient que l'on peut cliquer sur le shell script lui-même et un terminal se déclenchera et exécutera le script. Je préfère l'autre option.

Malheureusement, rien ne se passe lorsque je clique sur mon Borg.app. Je pense que le problème vient de la commande d'exportation au début, qui n'est pas prise en compte par la commande de montage dans cette configuration.

Toute aide pour résoudre ce problème est la bienvenue.

1voto

Patrick Steil Points 126

Assurez-vous que

  • l'interpréteur de commandes script à l'intérieur de Borg.app est exécutable ( chmod +x ... )
  • tous les fichiers dans Borg.app sont accessibles par l'utilisateur actuel
  • toute commande appelée à partir du script est appelée avec le chemin complet spécifié (en particulier pour les choses stockées dans /usr/local/bin et d'autres endroits similaires qui ne sont pas par défaut)

0 votes

Merci beaucoup Patrick pour votre réponse. L'application était déjà exécutable. Assez étrangement, si je lance open /Applications/Borg.app dans un terminal, cela a fonctionné, alors que cliquer sur l'application dans le Finder n'a rien fait.

0 votes

@220284 Pouvez-vous ajouter le chemin complet à borg et réessayer ?

0 votes

Problème résolu, merci beaucoup ! Le problème était un chemin incomplet pour la commande borg. Remplacement de borg avec /usr/local/bin/borg fait l'affaire.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X