Nsh: A fish/bash-like Posix shell in Rust

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • SonarQube - Static code analysis for 29 languages.
  • OPS - Build and Run Open Source Unikernels
  • Scout APM - Less time debugging, more time building
  • GitHub repo nsh

    A command-line shell like fish, but POSIX compatible.

  • GitHub repo ble.sh

    Bash Line Editor―a full-featured line editor written in pure Bash! Syntax highlighting, auto suggestions, vim modes, etc. are available in Bash interactive sessions!

    > bash is far behind concerning interactivity.

    Is it really? Projects like ble.sh [1] seem to pull off advanced features like syntax highlighting and enhanced completion with pure bash without the need for reimplementing a whole shell from the ground up.

    1.: https://github.com/akinomyoga/ble.sh

  • SonarQube

    Static code analysis for 29 languages.. Your projects are multi-language. So is SonarQube analysis. Find Bugs, Vulnerabilities, Security Hotspots, and Code Smells so you can release quality code every time. Get started analyzing your projects today for free.

  • GitHub repo babelfish

    Translate bash scripts to fish (by bouk)

    Have you made use of tools like babelfish? https://github.com/bouk/babelfish

  • GitHub repo oil

    Oil is a new Unix shell. It's our upgrade path from bash to a better language and runtime. It's also for Python and JavaScript users who avoid shell!

    This project looks very young. It might evolve into a contender but even the document on Bash compatibility just says "TODO" and frankly Bash compatibility is going to be a multi-year project on its own.

    For anyone after an upgrade path from Bash/Zsh then Oil shell is a lot more mature: https://www.oilshell.org/

  • GitHub repo nushell

    A new type of shell

    The name sounds very similar to Nushell[1], also written in Rust, but more mature and recognizable

    1: https://www.nushell.sh/

  • GitHub repo plugin-foreign-env

    Run foreign bash scripts and capture exported environment variables

  • GitHub repo oursh

    Your comrade through the perilous world of UNIX.

    There is also https://github.com/nixpulvis/oursh which wants to be POSIX compatible with its own extensions. Actually I would prefer if a new shell focuses on bash compatibility.

    If features are integrated, then I would probably want to have something about error handling because it is difficult to get right in bash even with shellcheck¹ and gets just worse when things run in parallel.

    ¹ https://www.shellcheck.net/

  • OPS

    OPS - Build and Run Open Source Unikernels. Quickly and easily build and deploy open source unikernels in tens of seconds. Deploy in any language to any cloud.

  • GitHub repo ShellCheck

    ShellCheck, a static analysis tool for shell scripts

    There is also https://github.com/nixpulvis/oursh which wants to be POSIX compatible with its own extensions. Actually I would prefer if a new shell focuses on bash compatibility.

    If features are integrated, then I would probably want to have something about error handling because it is difficult to get right in bash even with shellcheck¹ and gets just worse when things run in parallel.

    ¹ https://www.shellcheck.net/

  • GitHub repo fish-shell

    The user-friendly command line shell.

    or use a function. But the above example doesn't actually work, because unfortunately Fish has a deeper defect than a syntactical discrepancy here, and job control is not implemented for Fish functions, see https://github.com/fish-shell/fish-shell/issues/238 and the Fish manual's section on job control https://fishshell.com/docs/current/language.html?job-control.... But again, this is not a syntax issue but a job control issue, a defect in the implementation rather than the design of the syntax.

    Finally:

    > For any shell wannabe, there is a very large part of the syntax used by ksh/zsh/bash that can be changed without problems, e.g. conditional structures, loops, variable and function definitions, various kinds of parameter expansions and expressions and so on.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts