Commande introuvable lors de l'exécution avec execSync dans github Codespace
P粉306523969
P粉306523969 2024-03-20 11:52:18
0
1
403

J'utilise l'espace de code github pour tester le bot Discord.js. Dans celui-ci, j'utilise la commande fortune | owsay 使用了 fortunecowsay 命令,fortune 命令使用 sudo apt install Fortune-mod 安装,cowsay 使用 <代码>sudo apt安装cowsay。他们的安装目录位于“/usr/games”而不是“/bin”下,因此当我运行命令 fortune |牛说Je comprends

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

C'est parce que /usr/games n'est pas dans $PATH dans l'espace de code Github

Lorsque j'ajoute "/usr/games" au chemin dans "/etc/profile" et "~/.profile", en utilisant export PATH="/usr/games:$PATH" au bas des deux fichiers, puis utilisez la commande "source /etc/profile" et testez plus tard "source ~/.profile", ces commandes fonctionnent... mais lorsque j'essaie d'utiliser le coureur intégré de VScode (appuyez sur f5 et cliquez sur node.js) lorsque vous exécutez le fichier, il crée automatiquement un nouveau shell et utilise node pour exécuter le fichier non trouvé par sa commande.

Je veux savoir comment les espaces de codes GitHub créent un nouveau shell sans le nouveau chemin que j'ai ajouté. Et comment ajouter le répertoire /usr/games au chemin du nouveau shell qui s'ouvre lorsque vscode exécute le fichier

P粉306523969
P粉306523969

répondre à tous(1)
P粉579008412

Bien que les shells que vous utilisez dans Github Codespace soient interactifs, ce ne sont pas des shells de connexion. Seul le shell de connexion exécute le fichier /etc/profile~/.profile.

Vous pouvez tester si le shell est un shell de connexion en exécutant la commande suivante :

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

Vous pouvez :

  1. in.bashrc文件等中设置PATH;交互式非登录文件将运行此文件。尽管我认为在 .profile 以外的文件中设置 PATH n'est pas une bonne pratique.
  2. Après vous être connecté à Codespace via le terminal, exécutez bash -l pour démarrer un nouveau shell en tant que shell de connexion.
  3. À distance .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"
        },
        ...
    }

Ouvrez ensuite un nouveau terminal dans VS Code en utilisant le profil bash(登录).

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal