GeneralCommandLine () { GeneralCommandLine cmd = new GeneralCommandLine(); if (myWorkingDirectory != null) { cmd.setWorkDirectory(myWorkingDirectory); } String homePath = mySdk.getHomePath(); if (homePath != null) { homePath = FileUtil.toSystemDependentName(homePath); } PythonCommandLineState.createStandardGroups(cmd); ParamsGroup scriptParams = cmd.getParametersList().getParamsGroup(PythonCommandLineState.GROUP_SCRIPT); assert scriptParams != null; Map<String, String> env = cmd.getEnvironment(); if (!SystemInfo.isWindows && !PythonSdkUtil.isRemote(mySdk)) { cmd.setExePath("bash"); ParamsGroup bashParams = cmd.getParametersList().addParamsGroupAt(0, "Bash"); bashParams.addParameter("-cl"); NotNullFunction<String, String> escaperFunction = StringUtil.escaper(false, "|>$\"'& "); StringBuilder paramString; if (myHelper != null) { paramString = new StringBuilder(escaperFunction.fun(homePath) + " " + escaperFunction.fun(myHelper.asParamString())); myHelper.addToPythonPath(cmd.getEnvironment()); } else { paramString = new StringBuilder(escaperFunction.fun(homePath) + " " + escaperFunction.fun(myRunnerScript)); } for (String p : myParameters) { paramString.append(" ").append(p); } bashParams.addParameter(paramString.toString()); } else { cmd.setExePath(homePath); if (myHelper != null) { myHelper.addToGroup(scriptParams, cmd); } else { scriptParams.addParameter(myRunnerScript); } scriptParams.addParameters(ContainerUtil.filter(myParameters, o -> o != null)); } PythonEnvUtil.setPythonUnbuffered(env); if (homePath != null) { PythonEnvUtil.resetHomePathChanges(homePath, env); } List<String> pythonPath = setupPythonPath(); PythonCommandLineState.initPythonPath(cmd, true, pythonPath, homePath); return cmd; }