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
  • InfluxDB - Build time-series-based applications quickly and at scale.
  • SonarQube - Static code analysis for 29 languages.
  • SaaSHub - Software Alternatives and Reviews
  • nsh

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

  • 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

  • InfluxDB

    Build time-series-based applications quickly and at scale.. InfluxDB is the Time Series Platform where developers build real-time applications for analytics, IoT and cloud-native services. Easy to start, it is available in the cloud or on-premises.

  • babelfish

    Translate bash scripts to fish (by bouk)

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

  • 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/

  • 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/

  • plugin-foreign-env

    Run foreign bash scripts and capture exported environment variables

  • 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/

  • 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.

  • 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/

  • 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