# JavaScript Shell Scripting
## Metadata
**Status**:: #x
**Zettel**:: #zettel/fleeting
**Created**:: [[2026-01-31]]
**URL**:: [google/zx](https://google.github.io/zx/)
**Related**:: [[Python Shell Scripting]]
## Synopsis
```javascript
#!/usr/bin/env -S bunx zx
cd(os.homedir())
echo(await
ls`)
```
Zx uses `bash` as the shell. In Windows, WSL will add `bash.exe` into System32. Setting it to `sh.exe` from Git for Windows can resolve the name conflict.
[]()
```javascript
#!/usr/bin/env -S bunx zx
os.platform() == "win32" && ($.shell = "sh.exe")
echo(await
uname -a`)
// -> MINGW64_NT...
```
Zx uses the JavaScript feature [[JavaScript Tagged Templates]] to quote everything passed through `${...}`. It also supports array and promise.