Linux
基於使用者名的 WSL2 動態文件路徑用於 linux 和 windows
我創建了一個 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 的回答)。