web-dev-qa-db-fra.com

Comment définir [Bash sur Ubuntu sous Windows] [variables d'environnement] à partir de [chemin Windows]?

Essayez d'utiliser samza.Apache.org/startup/hello-samza/0.7.0/ avec Bash sous Windows 

ça va courir 

bin/grid bootstrap

où le code qui coule 

if [ -z "$Java_HOME" ]; then
  if [ -x /usr/libexec/Java_home ]; then
    export Java_HOME="$(/usr/libexec/Java_home)"
  else
    echo "Java_HOME not set. Exiting."
    exit 1
  fi
fi

donner une erreur

Java_HOME not set. Exiting.

sur CMD quand je cours 

echo %Java_HOME%

j'ai eu 

C:\Program Files (x86)\Java\jdk1.8.0_102\

Je veux importer les données du chemin d'accès vers bash 

 enter image description here

5
Mohamed Elrashid

Je voudrais essayer export Java_HOME="/mnt/c/Program Files (x86)/Java/jdk1.8.0_102" pour définir la variable Java_HOME dans le shell bash.

Update (réponse à votre modification):

Je ne recommanderais pas d'essayer d'importer automatiquement vos chemins Windows dans Bash sous Ubuntu sous Windows, car ces chemins doivent être convertis pour être compris par le shell bash (\ à /, C:\ à mnt/c/ et ainsi de suite), et des outils que vous allez probablement référencer fonctionnera sous Windows et Linux. À la place, installez ce dont vous avez besoin sur le shell Bash à l’aide de apt-get (vous n’avez pas besoin d’utiliser Sudo car BUW se charge dans un shell racine). Java est probablement bon à référencer comme ci-dessus, mais la plupart des choses que vous voudrez installer séparément sur Ubuntu.

4
Shahein Moussavi

En guise de solution rapide, j’ai créé un script PowerShell qui 

  1. Prendre toutes les variables d'environnement Windows
  2. Changez le séparateur de chemin en /
  3. Remplacez C: par /mnt/c
  4. La sortie export commande une ligne par variable d’environnement

    Get-ChildItem Env: | % {"export $($_.Name)=`"$($_.Value.Replace('\', '/').Replace('C:', '/mnt/c'))`""}
    

Maintenant, tout ce que vous avez à faire est d’exécuter ce script dans Powershell, de copier le résultat et de le coller dans WSL/Ubuntu sous Windows pour renseigner les variables d’environnement. Vous pouvez également placer toutes ces commandes dans un fichier .sh et l'exécuter à l'aide de bash.

C'est une solution brute, mais cela a fonctionné pour moi. Je suis ouvert aux suggestions pour améliorer cela.

1
raghav710

Ma variable d'environnement de chemin semble y avoir déjà mes chemins Windows. Mais vous pouvez exécuter des programmes Windows à partir d'Ubuntu sous Windows. Vous pouvez donc obtenir des variables d’environnement ou ce que vous voulez.

export PATH=$PATH:`/mnt/c/Windows/System32/cmd.exe -/C "echo $PATH"`

Il n'est pas recommandé d'utiliser Cygwin (licence, corruption de registre, etc.). Mais ci-dessous devrait fonctionner. run est documenté pour exécuter des programmes Windows à partir du shell bash qu’il vous donne.

export PATH=$PATH:`run /mnt/c/Windows/System32/cmd.exe -/C "echo $PATH"`
0
TamusJRoyce