Skip to content

Commit 1f890f9

Browse files
authored
Update README.md
1 parent 9a183e8 commit 1f890f9

File tree

1 file changed

+24
-15
lines changed

1 file changed

+24
-15
lines changed

Diff for: README.md

+24-15
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,7 @@
22

33
[![Build Status](https://travis-ci.org/NeowayLabs/nash.svg?branch=master)](https://travis-ci.org/NeowayLabs/nash) [![Go Report Card](https://goreportcard.com/badge/github.com/NeowayLabs/nash)](https://goreportcard.com/report/github.com/NeowayLabs/nash)
44

5-
Nash is a system shell that attempts to be more safe and give
6-
more power to user. It's safe in the sense of it's far more hard to
7-
shoot yourself in the foot. It gives power to user in the sense
8-
that you really can use `nash` to script deploys taking advantage
9-
of namespaces (on linux and plan9) in an idiomatic way.
10-
11-
It's more safe for scripts because it doesn't have the unsafe
12-
features of all former shells and it aim to have a very simple, safe
13-
and frozen syntax specification. Every shell feature considered
14-
harmful was left behind.
15-
16-
Nash is inspired by Plan 9 `rc` shell, but with very different syntax
17-
and purpose.
5+
Nash is a system shell, inspired by plan9 `rc`, that makes it easy to create reliable and safe scripts taking advantages of operating systems namespaces (on linux and plan9) in an idiomatic way.
186

197
# Show time!
208

@@ -27,11 +15,32 @@ and purpose.
2715
- [Dotnash](https://github.com/tiago4orion/dotnash): Nash profile customizations (e.g: prompt, aliases, etc)
2816
- [nash-mode](https://github.com/tiago4orion/nash-mode.el): Emacs major mode integrated with `nashfmt`.
2917

30-
Go ahead:
18+
## Why nash scripts are reliable?
19+
20+
1. Nash aborts at first non-success status of commands;
21+
2. Nash aborts at first unbound variable;
22+
3. It's possible to check the result status of every component of a pipe;
23+
4. **no eval**;
24+
5. Strings are pure strings (no evaluation of variables);
25+
6. No wildcards (globbing) of files; ('rm \*' removes a file called '\*');
26+
7. No [obscure](http://explainshell.com/) syntax;
27+
8. Support tooling for indent/format and statically analyze the scripts;
28+
29+
## Installation
30+
31+
If you have Go, go-get it:
3132

3233
```sh
34+
# Make sure GOPATH/bin is in your PATH
3335
go get github.com/NeowayLabs/nash/cmd/nash
34-
# Make sure GOPATH/bin is in yout PATH
36+
```
37+
If not, [download the latest binary release](https://github.com/NeowayLabs/nash/releases) and copy to somewhere in your PATH.
38+
39+
## Getting started
40+
41+
Nash syntax resembles a common shell:
42+
43+
```
3544
nash
3645
λ> echo "hello world"
3746
hello world

0 commit comments

Comments
 (0)