Befehl nicht gefunden, wenn er mit execSync im Github-Codespace ausgeführt wird
P粉306523969
P粉306523969 2024-03-20 11:52:18
0
1
431

Ich verwende den Github-Codespace, um den Discord.js-Bot zu testen. Darin verwende ich den Befehl fortune | owsay 使用了 fortunecowsay 命令,fortune 命令使用 sudo apt install Fortune-mod 安装,cowsay 使用 <代码>sudo apt安装cowsay。他们的安装目录位于“/usr/games”而不是“/bin”下,因此当我运行命令 fortune |牛说Ich verstehe

bash: fortune: command not found
bash: cowsay: command not found

Das liegt daran, dass sich /usr/games nicht in $PATH im Github-Coderaum befindet

Wenn ich „/usr/games“ zum Pfad in „/etc/profile“ und „~/.profile“ hinzufüge, verwende ich export PATH="/usr/games:$PATH" am Ende beider Dateien und verwenden Sie dann den Befehl „source /etc/profile“ und testen Sie später „source ~/.profile“. Diese Befehle funktionieren ... aber wenn ich versuche, den integrierten Runner von VScode zu verwenden (drücken Sie f5 und Wenn Sie die Datei ausführen, wird automatisch eine neue Shell erstellt und Node verwendet, um die Datei auszuführen, die von ihrem Befehl nicht gefunden wurde.

Ich möchte wissen, wie GitHub-Codespaces eine neue Shell ohne den neuen Pfad erstellt, den ich hinzugefügt habe. Und wie man das Verzeichnis /usr/games zum Pfad der neuen Shell hinzufügt, die geöffnet wird, wenn vscode die Datei ausführt

P粉306523969
P粉306523969

Antworte allen(1)
P粉579008412

虽然您在 Github Codespace 中使用的 shell 是交互式的,但它们不是登录 shell。只有登录 shell 才运行 /etc/profile~/.profile 文件。

您可以通过运行以下命令来测试 shell 是否为登录 shell:

shopt -q login_shell && echo 'login shell' || echo 'not login shell'

您可以:

  1. .bashrc文件等中设置PATH;交互式非登录文件将运行此文件。尽管我认为在 .profile 以外的文件中设置 PATH 并不是最佳实践。
  2. 通过终端连接到 Codespace 后,运行 bash -l 以启动一个新 shell 作为登录 shell。
  3. 在远程 .vscode-remote settings.json 文件中创建新的终端配置文件 - 转到 SettingsRemote [ Codespaces],单击Edit in settings.json按钮应该可以到达这里,然后将新的配置文件添加到terminal.integrated.profiles.linux...
"terminal.integrated.profiles.linux": {

        "bash (login)": {
            "path": "bash",
            "args": ["-l"],
            "icon": "terminal-bash"
        },
        ...
    }

然后在 VS Code 中使用 bash(登录) 配置文件打开一个新终端。

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage