@NotNull
  public static @NlsSafe String getInterpreter(@NotNull ShFile file,
                                               @NotNull List<@NlsSafe String> knownShells,
                                               @NlsSafe @NotNull String defaultShell) {
    String shebang = ApplicationManager.getApplication().isDispatchThread() ? file.findShebang()
                                                                            : ReadAction.compute(() -> file.findShebang());
    String detectedInterpreter = shebang != null ? detectInterpreter(shebang) : null;
    return detectedInterpreter != null && knownShells.contains(detectedInterpreter) ? detectedInterpreter : defaultShell;
  }
@NotNull
  public static @NlsSafe String getInterpreter(@NotNull ShFile file,
                                               @NotNull List<@NlsSafe String> knownShells,
                                               @NlsSafe @NotNull String defaultShell)