PowerShell is completely suitable. People are just used to bash and don’t feel the incentive to switch, especially with Windows becoming less relevant outside of desktop development.
Like, to set an env variable permanently, you either have to go through 5 GUI interfaces, or use this PS command:
[Environment]::SetEnvironmentVariable ("INCLUDE", $env:INCLUDE, [System.EnvironmentVariableTarget]::User)
Which is honeslty horrendous. Why the brackets ? Why the double columns ? Why the uppercases everywhere ? I get that it's trying to look more "OOP-ish" and look like C#, but nobody wants to work with that kind of shell script tbh. It's just one example, but all the powershell commands look like this, unless they have been aliased to trick you to think windows go more unixish
[Environment]::SetEnvironmentVariable($name, $value, "User")
You have un-necessarily used a full constant to falsely present it more complex. Please also note that you have COMPLETION. You are not forced to type that out. Second, you can use an alternative Set-Item HKCU:\Environment\MY_VAR "some value"
Third, if you still find it too long, wrap it in a function: function setenv($name, $value) {
[Environment]::SetEnvironmentVariable($name, $value, "User")
}
setenv MY_VAR "some value"
Also, can you please tell the incantation for setting an env variable permanently in bash ? You cannot since it doesn't exist.Powershell's model is far superior to Bash. It is not even a contest.