[Runtime
](../../../index.md)[Package Manager
](../../../pm/cli/install/index.md)[Bundler
](../../../bundler/index.md)[Test Runner
](../../../test/index.md)[Guides
](../../index.md)[Reference
](https://bun.com/reference)[Blog
](https://bun.com/blog)[Feedback
](../../../feedback/index.md)
Bun Shell is a cross-platform bash-like shell built in to Bun. It runs shell commands in JavaScript and TypeScript. To get started, import the $ function from the bun package and use it to run shell commands.
foo.ts
import { $ } from "bun";
await $`echo Hello, world!`; // => "Hello, world!"
The $ function is a tagged template literal that runs the command and returns a promise that resolves with the command’s output.
foo.ts
import { $ } from "bun";
const output = await $`ls -l`.text();
console.log(output);
To get each line of the output as an array, use the lines method.
foo.ts
import { $ } from "bun";
for await (const line of $`ls -l`.lines()) {
console.log(line);
}
See Docs > API > Shell for complete documentation.
Was this page helpful?
[
Get the process uptime in nanoseconds
Previous
](../../process/nanoseconds/index.md)[
Set a time zone in Bun
Next
](../timezone/index.md)