# JavaScript 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.