@Android-student

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

VSCodeのターミナルからシェルスクリプトを実行した際の結果を確認したい。

解決したこと

VSCodeのターミナルからシェルスクリプトを実行した際の結果を確認したい。

発生している問題・エラー

VSCodeのターミナルからシェルスクリプトを実行しても何も表示されない。testを表示したい。

PS C:\test\employee\script> .\shlscript.sh
PS C:\test\employee\script>
                            ./shlscript.sh
PS C:\test\employee\script>

PS C:\test\employee\script> ls


    ディレクトリ: C:\test\employee\script


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----        2025/03/11      7:03                DDL
d-----        2025/03/11      7:04                DML
-a----        2025/03/21      5:45           1675 init.sh
-a----        2025/03/21      5:50             24 shlscript.sh


PS C:\test\employee\script> 

該当するソースコード

shlscript.sh
#!/bin/bash

echo "test"

環境

vscodeの拡張機能として下記はインストール済です。
・Remote Development
・Bash IDE
・shellcheck

0 likes

3Answer

プロンプトの頭が「PS」となっているのでWindowsのPowerShellで実行しようとしてるからではないでしょうか?
Bashのシェルを実行したいのであれば、Linuxが実行している環境(別のホスト or ローカルのwsl内でのLinux)に接続して実行すれば良いと思います。
VS Codeでリモート接続する方法は他の記事にいっぱいあるので探してみてください。

0Like

Comments

  1. PowerShellのコマンドを実行したい場合は、拡張子を.psにしましょう

  2. コメントありがとうございます。
    vscodeでリモートエクスプローラから
    プルダウンでリモート(トンネル/SSH)を選択し、
    SSHから歯車アイコンで構成ファイルを開いて設定を行い、
    設定したもののウィンドウアイコンで新しいウィンドウから接続し、Linuxを選択しましたが下記のエラーとなり失敗しました。

    Log Level: 2
    SSH Resolver called for "ssh-remote+7b22686f73744e616d65223a225562756e74753031227d", attempt 1
    remote.SSH.useLocalServer = false
    remote.SSH.useExecServer = true
    remote.SSH.bindHost = {}
    remote.SSH.showLoginTerminal = false
    remote.SSH.remotePlatform = {}
    remote.SSH.path = 
    remote.SSH.configFile = 
    remote.SSH.useFlock = true
    remote.SSH.lockfilesInTmp = false
    remote.SSH.localServerDownload = auto
    remote.SSH.remoteServerListenOnSocket = false
    remote.SSH.defaultExtensions = []
    remote.SSH.defaultExtensionsIfInstalledLocally = []
    remote.SSH.loglevel = 2
    remote.SSH.enableDynamicForwarding = true
    remote.SSH.enableRemoteCommand = false
    remote.SSH.serverPickPortsFromRange = {}
    remote.SSH.serverInstallPath = {}
    remote.SSH.permitPtyAllocation = false
    remote.SSH.preferredLocalPortRange = undefined
    remote.SSH.useCurlAndWgetConfigurationFiles = false
    remote.SSH.experimental.chat = true
    remote.SSH.experimental.enhancedSessionLogs = true
    remote.SSH.httpProxy = {"*":""}
    remote.SSH.httpsProxy = {"*":""}
    VS Code version: 1.98.2
    Remote-SSH version: remote-ssh@0.118.0
    win32 x64
    SSH Resolver called for host: Ubuntu01
    Setting up SSH remote "Ubuntu01"
    Using commit id "ddc367ed5c8936efe395cffeec279b04ffd7db78" and quality "stable" for server
    Extensions to install: 
    Install and start server if needed
    Checking ssh with "C:\Program Files\Common Files\Oracle\Java\javapath\ssh.exe -V"
    Got error from ssh: spawn C:\Program Files\Common Files\Oracle\Java\javapath\ssh.exe ENOENT
    Checking ssh with "C:\WINDOWS\system32\ssh.exe -V"
    Got error from ssh: spawn C:\WINDOWS\system32\ssh.exe ENOENT
    Checking ssh with "C:\WINDOWS\ssh.exe -V"
    Got error from ssh: spawn C:\WINDOWS\ssh.exe ENOENT
    Checking ssh with "C:\WINDOWS\System32\Wbem\ssh.exe -V"
    Got error from ssh: spawn C:\WINDOWS\System32\Wbem\ssh.exe ENOENT
    Checking ssh with "C:\WINDOWS\System32\WindowsPowerShell\v1.0\ssh.exe -V"
    Got error from ssh: spawn C:\WINDOWS\System32\WindowsPowerShell\v1.0\ssh.exe ENOENT
    Checking ssh with "C:\WINDOWS\System32\OpenSSH\ssh.exe -V"
    > OpenSSH_for_Windows_9.5p1, LibreSSL 3.8.2
     Running script with connection command: "C:\WINDOWS\System32\OpenSSH\ssh.exe" -T -D 62287 "Ubuntu01" sh
     Generated SSH command: 'type "C:\Users\XXXXX\AppData\Local\Temp\vscode-linux-multi-line-command--buntu01-533897794.sh" | "C:\WINDOWS\System32\OpenSSH\ssh.exe" -T -D 62287 "Ubuntu01" sh'
     Using connect timeout of 17 seconds
     Terminal shell path: C:\WINDOWS\System32\cmd.exe
     > 
     Got some output, clearing connection timeout
     > ssh: connect to host 172.18.81.26 port 22: Connection refused
     > プロセスが、存在しないパイプに書き込もうとしました。
     "install" terminal command done
     Install terminal quit with output: プロセスが、存在しないパイプに書き込もうとしました。
     Received install output: プロセスが、存在しないパイプに書き込もうとしました。
     WARN: $PLATFORM is undefined in installation script output.  Errors may be dropped.
     Failed to parse remote port from server output
     Resolver error: Error: 
    	at y.Create (c:\Users\XXXXX\.vscode\extensions\ms-vscode-remote.remote-ssh-0.118.0\out\extension.js:2:740625)
    	at t.handleInstallOutput (c:\Users\XXXXX\.vscode\extensions\ms-vscode-remote.remote-ssh-0.118.0\out\extension.js:2:738706)
    	at t.tryInstall (c:\Users\XXXXX\.vscode\extensions\ms-vscode-remote.remote-ssh-0.118.0\out\extension.js:2:856299)
    	at async c:\Users\XXXXX\.vscode\extensions\ms-vscode-remote.remote-ssh-0.118.0\out\extension.js:2:815123
    	at async t.withShowDetailsEvent (c:\Users\XXXXX\.vscode\extensions\ms-vscode-remote.remote-ssh-0.118.0\out\extension.js:2:818374)
    	at async R (c:\Users\XXXXX\.vscode\extensions\ms-vscode-remote.remote-ssh-0.118.0\out\extension.js:2:811578)
    	at async t.resolve (c:\Users\XXXXX\.vscode\extensions\ms-vscode-remote.remote-ssh-0.118.0\out\extension.js:2:815775)
    	at async c:\Users\XXXXX\.vscode\extensions\ms-vscode-remote.remote-ssh-0.118.0\out\extension.js:2:1102718
     ------
     No hints found in the recent session.
     Opening exec server for ssh-remote+7b22686f73744e616d65223a225562756e74753031227d
     Opening exec server for ssh-remote+7b22686f73744e616d65223a225562756e74753031227d
     Initizing new exec server for ssh-remote+7b22686f73744e616d65223a225562756e74753031227d
     Using commit id "ddc367ed5c8936efe395cffeec279b04ffd7db78" and quality "stable" for server
     Extensions to install: 
     Install and start server if needed
    
  3. 次にubuntsとWSLをインストールしてcode .を入力すると
    vscodeが起動し、左下の青いところにWSL:Ubuntuと表示されるのですが
    C:\test\employeeを開くと、元のフォルダが表示されて左下の青いところの表示は何もない状態(><のみ)となります。
    また、vscodeでリモートエクスプローラから
    プルダウンでリモート(トンネル/SSH)を選択し、
    SSHから歯車アイコンで構成ファイルを開いて
    ubunts側でip aを入力して出力された全てのipアドレスに対して、ipアドレスを順番に設定し、新しいウィンドウから接続し、Linuxを選択しましたがエラーメッセージは変わりませんでした。

Vscodeのターミナルウィンドウの右側の+アイコンの隣のvをクリックし、メニューからGit Bashを選択すると実行できるようになりましたのでQ&Aをクローズ致します。

0Like

Your answer might help someone💌