ShellCheck VS PowerShell

Compare ShellCheck vs PowerShell and see what are their differences.

Our great sponsors
  • ONLYOFFICE ONLYOFFICE Docs — document collaboration in your environment
  • SonarQube - Static code analysis for 29 languages.
  • InfluxDB - Access the most powerful time series database as a service
ShellCheck PowerShell
457 370
32,226 38,701
- 0.7%
7.5 9.8
6 days ago about 7 hours ago
Haskell C#
GNU General Public License v3.0 only MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.


Posts with mentions or reviews of ShellCheck. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-05-21.


Posts with mentions or reviews of PowerShell. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-04-30.
  • ThreadJob and $using can have some interesting pitfalls
    3 projects | | 30 Apr 2023
    Engine event processing bypasses "ShouldQueueAndProcessInExecutionThread" causing state corruption and crash due to Runspace affinity
    3 projects | | 30 Apr 2023
  • What are your favorite open source apps?
    16 projects | | 29 Apr 2023
  • The weird world of Windows file paths
    2 projects | | 21 Apr 2023
    Also it is MIT-licensed open source today:
  • Microsoft fixes 5-year-old Defender bug, reducing Firefox-related CPU use by 75%
    4 projects | | 10 Apr 2023
  • Can't install powershell on my mac 10.13
    2 projects | | 30 Mar 2023
    ==> Downloading
  • ls – where size > 10mb – –sort-by modified
    7 projects | | 12 Mar 2023
    NuShell is properly MIT-licensed, and is therefore Free Software.

    Powershell is kind of MIT-licensed, except for the parts that aren't but are still an integral part of it, so not really, and is therefore not Free Software. At least, it's not DFSG-free.

  • bsdutils: Alternative to GNU coreutils using software from FreeBSD
    10 projects | | 2 Mar 2023
  • Windows nanoserver github portable (ssh auth) fatal: Could not read from remote repository
    3 projects | | 1 Mar 2023
    # escape=` # Copyright (c) Microsoft Corporation. # Licensed under the MIT License. # Args used by from statements must be defined here: ARG ARG InstallerEnvRepo=windows/servercore ARG InstallerEnvTag=ltsc2022 ARG ARG NanoEnvRepo=windows/nanoserver ARG NanoEnvTag=ltsc2022 # -------------------------------------------------------------------------------------------------------------------------------------- # STAGE 1 Build Environment # -------------------------------------------------------------------------------------------------------------------------------------- FROM ${InstallerEnvHost}/${InstallerEnvRepo}:$InstallerEnvTag AS installer-env1 # disable telemetry ENV POWERSHELL_TELEMETRY_OPTOUT="1" ARG PS_VERSION=7.3.2 ARG PS_PACKAGE_URL=$PS_VERSION/PowerShell-$ ARG ZIP_VERSION=2201 ARG ZIP_PACKAGE_URL=$ZIP_VERSION-x64.exe SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"] RUN [Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12; ` New-Item -ItemType Directory -Path C:\installer | Out-Null; ` Write-Output "Download PowerShell from $env:PS_PACKAGE_URL"; ` Invoke-WebRequest -Uri $env:PS_PACKAGE_URL -outfile C:\installer\ -verbose; ` Expand-Archive C:\installer\ -DestinationPath \PowerShell; ` Write-Output "Download 7-Zip from $env:ZIP_PACKAGE_URL"; ` Invoke-WebRequest -Uri $env:ZIP_PACKAGE_URL -OutFile C:\installer\7z.exe; ` Start-Process -FilePath C:\installer\7z.exe -ArgumentList '/S' -NoNewWindow -Wait -Verbose #Start the NanoServer Build of ePledge # -------------------------------------------------------------------------------------------------------------------------------------- # STAGE 2 Build Environment # -------------------------------------------------------------------------------------------------------------------------------------- FROM ${NanoEnvHost}/${NanoEnvRepo}:$NanoEnvTag AS installer-env2 COPY --from=installer-env1 ["/PowerShell", "/Program Files/PowerShell"] COPY --from=installer-env1 ["/Program Files/7-Zip", "/Program Files/7-Zip"] #Need to switch user to ContainerAdministrator in order to do a setx USER ContainerAdministrator RUN setx PATH "%PATH%;%ProgramFiles%\PowerShell;%ProgramFiles%\Git\cmd;%ProgramFiles%\Git\usr\bin;%ProgramFiles%\7-zip" /M USER ContainerUser ARG GIT_VERSION=2.39.2 ARG GIT_PACKAGE_URL=$$GIT_VERSION-64-bit.7z.exe ARG GH_CLI_VERSION=2.23.0 ARG GH_CLI_PACKAGE_URL=$GH_CLI_VERSION/gh_${GH_CLI_VERSION} SHELL ["pwsh", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"] RUN [Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12; ` New-Item -ItemType Directory -Path C:\installer | Out-Null; ` Write-Output "Download Git from $env:GIT_PACKAGE_URL"; ` Invoke-WebRequest -Uri $env:GIT_PACKAGE_URL -OutFile C:\Installer\Git.7z.exe; ` 7z x C:\Installer\Git.7z.exe -ogit; ` Write-Output "Download Git CLI from $env:GH_CLI_PACKAGE_URL"; ` Invoke-WebRequest -Uri $env:GH_CLI_PACKAGE_URL -OutFile C:\Installer\; ` 7z x C:\Installer\ -ogit # -------------------------------------------------------------------------------------------------------------------------------------- # Final Build STAGE # -------------------------------------------------------------------------------------------------------------------------------------- FROM ${NanoEnvHost}/${NanoEnvRepo}:$NanoEnvTag AS nanoserver-git COPY --from=installer-env1 ["/PowerShell", "/Program Files/PowerShell"] COPY --from=installer-env1 ["/Program Files/7-Zip", "/Program Files/7-Zip"] COPY --from=installer-env2 ["/Git", "/Program Files/Git"] USER ContainerAdministrator RUN setx PATH "%PATH%;%ProgramFiles%\PowerShell;;%ProgramFiles%\Git;%ProgramFiles%\Git\cmd;%ProgramFiles%\Git\usr\bin;%ProgramFiles%\7-zip" /M USER ContainerUser SHELL ["pwsh", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"] #Create Base Level Directories RUN New-Item -ItemType Directory -Path C:\AdminScripts | Out-Null; ` New-Item -ItemType Directory -Path C:\AdminScripts\epledge-deploy | Out-Null; ` New-Item -ItemType Directory -Path C:\Users\ContainerUser\.ssh | Out-Null; ` Set-Location $ENV:ProgramFiles\Git # Copy Over Files & Folders COPY IdentityFiles C:/AdminScripts/IdentityFiles COPY .ssh C:/Users/ContainerUser/.ssh RUN git config --global core.sshCommand 'ssh -o StrictHostKeyChecking=no' CMD ["pwsh.exe"]
  • New PowerShell Version - v7.3.3: * [7.3.3] - 2023-02-23
    4 projects | | 23 Feb 2023
    Only found this in the repo itself Changelog 7.3

What are some alternatives?

When comparing ShellCheck and PowerShell you can also consider the following projects:

bash-language-server - A language server for Bash

nushell - A new type of shell

winpty - A Windows software package providing an interface similar to a Unix pty-master for communicating with Windows console programs.

shfmt - Dockernized shfmt. This formats shell script.

terminal - The new Windows Terminal and the original Windows console host, all in the same place!

WFinfo - :computer: A fissure Companion App for Warframe

shellharden - The corrective bash syntax highlighter

PowerToys - Windows system utilities to maximize productivity

efm-langserver - General purpose Language Server

xonsh - :shell: Python-powered, cross-platform, Unix-gazing shell.

neomake - Asynchronous linting and make framework for Neovim/Vim

pdsh - A high performance, parallel remote shell utility