Incorrect quoting for file names causes terminal commands to fail (in varying platform-specific ways) #24126
Labels
bug
Issue identified by VS Code Team member as probable bug
triage-needed
Needs assignment to the proper sub-team
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: