When running wsl and interactively executing commands, the PATH is correctly initialized, since ~/.profile is sourced through ~/.zprofile by zsh.
However, while executing wsl <my_command>, the command is not found, since the PATH is not set correctly. The same happens for wsl zsh -c <my_command>.
Interactive:
PS C:\Users\Korpershoek_J> wsl
┌──(jjk㉿LT446W3J3)-[/mnt/c/Users/Korpershoek_J]
└─$ which redact
/home/jjk/bin/redact
Inline:
PS C:\Users\Korpershoek_J> wsl which redact
redact not found
The PATH variable can be shown as follows
Interactive:
PS C:\Users\Korpershoek_J> wsl
┌──(jjk㉿LT446W3J3)-[/mnt/c/Users/Korpershoek_J]
└─$ echo $PATH
/home/jjk/.local/bin:/home/jjk/go/bin:/home/jjk/dotfiles/python_bin:/home/jjk/git/scripts/python_bin:/home/jjk/.cargo/bin:/home/jjk/nw_bin:/home/jjk/bin:/home/jjk/.config/kak/bin:/home/jjk/node_modules/.bin:/usr/local/opt/ruby/bin:/usr/local/lib/ruby/gems/3.0.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/wsl/lib:/mnt/c/Windows/system32:/mnt/c/Windows:/mnt/c/Windows/System32/Wbem:/mnt/c/Windows/System32/WindowsPowerShell/v1.0/:/mnt/c/Windows/System32/OpenSSH/:/mnt/c/ProgramData/chocolatey/bin:/mnt/c/Program Files/Microsoft VS Code/bin:/mnt/c/texlive/2022/bin/win32:/mnt/c/Program Files/dotnet/:/mnt/c/Users/Korpershoek_J/AppData/Local/Microsoft/WindowsApps:/mnt/c/Program Files/Oracle/VirtualBox
Inline:
PS> wsl echo '$PATH'
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/wsl/lib:/mnt/c/Windows/system32:/mnt/c/Windows:/mnt/c/Windows/System32/Wbem:/mnt/c/Windows/System32/WindowsPowerShell/v1.0/:/mnt/c/Windows/System32/OpenSSH/:/mnt/c/ProgramData/chocolatey/bin:/mnt/c/Program Files/Microsoft VS Code/bin:/mnt/c/texlive/2022/bin/win32:/mnt/c/Program Files/dotnet/:/mnt/c/Users/Korpershoek_J/AppData/Local/Microsoft/WindowsApps:/mnt/c/Program Files/Oracle/VirtualBox
Or even:
PS> wsl zsh -c 'echo $PATH'
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/wsl/lib:/mnt/c/Windows/system32:/mnt/c/Windows:/mnt/c/Windows/System32/Wbem:/mnt/c/Windows/System32/WindowsPowerShell/v1.0/:/mnt/c/Windows/System32/OpenSSH/:/mnt/c/ProgramData/chocolatey/bin:/mnt/c/Program Files/Microsoft VS Code/bin:/mnt/c/texlive/2022/bin/win32:/mnt/c/Program Files/dotnet/:/mnt/c/Users/Korpershoek_J/AppData/Local/Microsoft/WindowsApps:/mnt/c/Program Files/Oracle/VirtualBox
It is clear that the PATH variable is not correctly initialized. This is probably because ~/.zprofile is not sourced. How can I get /home/jjk/bin correctly in my path when executing WSL inline?