저는 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를 Linux 측 머신과 WSL2의 Windows 측 사용자 이름으로 동적으로 변경하고 싶습니다.
답변1
아마도 더 좋은 방법이 있을 것입니다. 하지만 제가 생각해낸 방법은 다음과 같습니다.
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
다른 곳에 있는 경우 사용자의 Windows 홈 디렉터리를 가져오려면 PowerShell 주문이 필요합니다. 그것은 다음과 같습니다:
winhome==$(powershell.exe -c 'Write-Host -NoNewLine $env:userprofile' | xargs -0 wslpath)
(답변을 주신 @Panki에게 감사드립니다).