如何设置 [Bash on Ubuntu on Windows] [environment variables] from [windows path]?
How to set [Bash on Ubuntu on Windows] [environment variables] from [windows path]?
尝试在 Windows
上将 samza.apache.org/startup/hello-samza/0.7.0/ 与 Bash 一起使用
会运行
bin/grid bootstrap
哪里有流动的代码
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
报错
JAVA_HOME not set. Exiting.
当我 运行
时在 CMD 上
echo %JAVA_HOME%
我得到了
C:\Program Files (x86)\Java\jdk1.8.0_102\
我要导入路径数据到bash
我会尝试 export JAVA_HOME="/mnt/c/Program Files (x86)/Java/jdk1.8.0_102"
在 bash shell 中设置 JAVA_HOME 变量。
更新(对您的编辑的回应):
我不建议尝试将 Windows 路径自动导入到 Windows 上的 Ubuntu 上的 Bash,因为必须转换路径才能理解通过 bash shell(\
到 /
、C:\
到 mnt/c/
等等),因为并不是所有的工具你可能要参考的内容适用于 Windows 和 Linux。相反,使用 apt-get
在 Bash shell 上安装你需要的东西(你不需要使用 sudo
因为 BUW 在根 shell 中加载)。 Java 可能可以像上面那样引用,但大多数东西你会想要单独安装在 Ubuntu.
作为快速解决方案,我创建了一个 powershell 脚本,可以
- 取所有windows个环境变量
- 将路径分隔符更改为
/
- 将
C:
更改为/mnt/c
Output export
命令每个环境变量一行
Get-ChildItem Env: | % {"export $($_.Name)=`"$($_.Value.Replace('\', '/').Replace('C:', '/mnt/c'))`""}
现在,您需要做的就是在 Powershell 中 运行 此脚本,复制输出并将其粘贴到 WSL/Ubuntu 上 Windows 以填充环境变量。您还可以将所有这些命令放在 .sh
文件中,然后使用 bash.
执行它
这是一个粗略的解决方案,但这对我有用。我乐于接受有关改进的建议。
我的路径环境变量似乎已经有了我的 windows 路径。但是您可以 运行 windows 来自 Ubuntu 的 Windows 节目。所以你可以获得环境变量或任何你喜欢的东西。
export PATH=$PATH:`/mnt/c/Windows/System32/cmd.exe -/C "echo %PATH%"`
不建议使用 Cygwin(许可、注册表损坏等)。但下面应该工作。 运行 被记录到 运行 windows 程序,来自 bash shell 它给你。
export PATH=$PATH:`run /mnt/c/Windows/System32/cmd.exe -/C "echo %PATH%"`
这个对我有用,通过在系统变量环境中设置 WSLENV。
系统变量
尝试在 Windows
上将 samza.apache.org/startup/hello-samza/0.7.0/ 与 Bash 一起使用会运行
bin/grid bootstrap
哪里有流动的代码
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
报错
JAVA_HOME not set. Exiting.
当我 运行
时在 CMD 上echo %JAVA_HOME%
我得到了
C:\Program Files (x86)\Java\jdk1.8.0_102\
我要导入路径数据到bash
我会尝试 export JAVA_HOME="/mnt/c/Program Files (x86)/Java/jdk1.8.0_102"
在 bash shell 中设置 JAVA_HOME 变量。
更新(对您的编辑的回应):
我不建议尝试将 Windows 路径自动导入到 Windows 上的 Ubuntu 上的 Bash,因为必须转换路径才能理解通过 bash shell(\
到 /
、C:\
到 mnt/c/
等等),因为并不是所有的工具你可能要参考的内容适用于 Windows 和 Linux。相反,使用 apt-get
在 Bash shell 上安装你需要的东西(你不需要使用 sudo
因为 BUW 在根 shell 中加载)。 Java 可能可以像上面那样引用,但大多数东西你会想要单独安装在 Ubuntu.
作为快速解决方案,我创建了一个 powershell 脚本,可以
- 取所有windows个环境变量
- 将路径分隔符更改为
/
- 将
C:
更改为/mnt/c
Output
export
命令每个环境变量一行Get-ChildItem Env: | % {"export $($_.Name)=`"$($_.Value.Replace('\', '/').Replace('C:', '/mnt/c'))`""}
现在,您需要做的就是在 Powershell 中 运行 此脚本,复制输出并将其粘贴到 WSL/Ubuntu 上 Windows 以填充环境变量。您还可以将所有这些命令放在 .sh
文件中,然后使用 bash.
这是一个粗略的解决方案,但这对我有用。我乐于接受有关改进的建议。
我的路径环境变量似乎已经有了我的 windows 路径。但是您可以 运行 windows 来自 Ubuntu 的 Windows 节目。所以你可以获得环境变量或任何你喜欢的东西。
export PATH=$PATH:`/mnt/c/Windows/System32/cmd.exe -/C "echo %PATH%"`
不建议使用 Cygwin(许可、注册表损坏等)。但下面应该工作。 运行 被记录到 运行 windows 程序,来自 bash shell 它给你。
export PATH=$PATH:`run /mnt/c/Windows/System32/cmd.exe -/C "echo %PATH%"`
这个对我有用,通过在系统变量环境中设置 WSLENV。
系统变量