Динамические пути к файлам WSL2 на основе имени пользователя для Linux и Windows

Создайте сценарий bash.

OUTPUT="$(hostname)"
echo "${OUTPUT}"

Запустите скрипт bash, используя./scriptname.sh

0
13.01.2021, 20:25
1 ответ

Возможно, есть лучший способ, но вот что я придумал:

Чтобы получить имя пользователя Windows из bash:

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 за этот ответ ).

2
18.03.2021, 22:36

Теги

Похожие вопросы