Extension should be aware of what shell type user is using to send shell specific escaped commands #24126
Labels
bug
Issue identified by VS Code Team member as probable bug
needs spike
Label for issues that need investigation before they can be worked on.
This issue is analogous to #23135 (which I believe was closed prematurely), specific to non-Windows environments using a shell such as
sh
,bash
etc. I am reporting it on behalf of another confused user who actually has VS Code installed (see https://stackoverflow.com/staging-ground/78990765 for details); because I don't, I can't use the in-program process to file a bug report. But this could also be considered as a feature request, I suppose.Steps to reproduce:
!
,$
or other specially interpreted character in it, on a Linux or Mac system.Expected result:
When a command is generated to run the Python interpreter, it should give the properly escaped path to the file being run in single quotes, so that the shell will interpret it literally. Alternately, it could avoid the problem that the quoting is trying to solve - ensuring that the file path is treated as a single token - by backslash-escaping any spaces instead.
Actual result:
The path is given in double quotes, which have different meaning for these shells. Double quotes enable interpolation with
$
, as well as history expansion with!
(the issue affecting the poor user I helped). Either way, this prevents successfully invoking Python.In #23135, the same issue was reported with
$
characters in PowerShell, because that shell treats them similarly.In general, the extension needs to be aware of what shell it's using, and apply appropriate corresponding rules for quoting or escaping. It seems that currently the rule is something like "wrap in double quotes if the path contains a space", which only works for
cmd
(and even then I'm not 100% sure).The text was updated successfully, but these errors were encountered: