I suppose it could. This IS by design, as I explained in the other answer, to be cross-platform. You can’t rely on e.g. bash
installed, or any shell even sh
; you might even run on a platform with no shell (all supported platforms have some shells, at least Windows with cmd
, I mean just in theory some [future, e.g. a microcontroller] might have none available), i.e. no specific shell is preinstalled on all of Julia’s supported platforms. E.g. not bash
on Windows (though by now with WSL2, wasn’t available when Julia was designed), and PowerShell not by default on Linux (but IS available there). Julia doesn’t want to bundle a shell (nor a terminal) with, making julia even larger, so it supports some common subset working on all platforms.
Note there is ReplMaker.jl that people have used to make their own modes (such as SQLREPL.jl that I nerdsniped into existence), in addition to ;
for the default shell mode (I’m not sure it allows changing a specific mode, maybe it does, at least an improved mode could be prototyped with it).
Basically anything is possible in Julia, i.e. is dynamic, so you could even change the default shell [code to do anything, such as you ask for], to e.g. call bash, or PowerShell, such a package could even bundle either (or both!). I don’t know that anyone has done this, and you might not use that tool to do it, except to prototype at first.
It’s for quick ls, dir, etc. Note on Windows you have dir not ls (at least historically), and vice versa. I see I actually have dir also in Mint (and any Linux, e.g. Ubuntu) by now. If I recall Julia may support ls even when absent on Windows.
EDIT: I see dir
does NOT actually work (or docs outdated? would with PowerShell?) on Windows (neither ls?):
For Windows users, Julia’s shell mode does not expose windows shell commands. Hence, this will fail:
I see some code specific for ~ on Unix/Linux and some Windows specific too: