Linux

基於使用者名的 WSL2 動態文件路徑用於 linux 和 windows

  • January 14, 2021

我創建了一個 bash 腳本,並希望為 WSL2 的 windows 和 linux 部分提供一個動態文件路徑。

#!/bin/bash

# Create the workspace
mkdir /mnt/c/Users/FINIX/Documents/Workspace/test/

# Go to the workspace
cd /mnt/c/Users/FINIX/Documents/Workspace/test/

# Create the temp file to store the branches
touch /home/finix/test.txt

# Clone the repo
git clone https://github.com/test/test.git

# Going to the downloaded repo
cd /mnt/c/Users/FINIX/Documents/Workspace/test/TEST/

我想將使用者名 finix 動態更改為機器的使用者名,該使用者名來自 WSL2 的 linux 端和 windows 端。

可能有更好的方法,但這是我想出的:

要從 bash 中檢索 Windows 使用者名:

winuser=$(powershell.exe -c "Write-Host -NoNewLine ([Environment]::UserName)")

然後您應該能夠使用它來動態創建目錄,如下所示:

mkdir /mnt/c/Users/${winuser}/Documents/Workspace/test/

Linux 使用者要容易得多。正如@terdon 所暗示的那樣,這可以很簡單:

touch ${HOME}/test.txt

或者,或者,touch /home/${USER}/test.txt

當然,Windows 端假定 Windows 首頁始終是/mnt/C/Users/username

如果它在其他地方,那麼您需要使用 PowerShell 咒語來獲取使用者的 Windows 主目錄。那將是:

winhome==$(powershell.exe -c 'Write-Host -NoNewLine $env:userprofile' | xargs -0 wslpath)(感謝@Panki 的回答)。

引用自:https://unix.stackexchange.com/questions/629012