mesalock-linux / mesabox

A collection of core system utilities written in Rust for Unix-like systems (and now Windows)
BSD 3-Clause "New" or "Revised" License
137 stars 19 forks source link

Differences between shells #32

Open Arcterus opened 6 years ago

Arcterus commented 6 years ago

I'm probably gonna use this issue to document differences that I've noticed between our shell and other shells, so it'll be edited/added to over time.

shift in function

Input

fn() { shift; echo hello; }
fn

Results

mesabox

illegal number "1"
hello

bash

hello

zsh

fn:shift: shift count must be <= $#
hello

dash

Notice that dash does not print hello at all. I didn't notice this in the specification, so I'm not actually sure if this is correct behavior (other built-ins like trap let the function continue normally).

dash: 1: shift: can't shift that many