oh-my-posh/docs/docs/segment-command.md

54 lines
1.5 KiB
Markdown
Raw Normal View History

2020-10-05 02:33:12 -07:00
---
id: command
title: Command
sidebar_label: Command
---
## What
2021-09-01 04:45:33 -07:00
:::caution Powershell
2020-10-25 05:11:40 -07:00
While powerful, it tends to take a lot of time executing the command on **Powershell**.
Even with `noprofile` it's noticeably slower compared to `sh`. It's advised to look at using
[environment variables][env] when using Powershell.
:::
2020-10-05 02:33:12 -07:00
Command allows you run an arbitrary shell command. Be aware it spawn a new process to fetch the result, meaning
2020-10-25 05:11:40 -07:00
it will not be able to fetch session based context (look at abusing [environment variables][env] for that).
When the command errors or returns an empty string, this segment isn't rendered.
2020-10-05 02:33:12 -07:00
You have the ability to use `||` or `&&` to stitch commands together and achieve complex results. When using `||`
the first command that returns a string will be used (or none when they all fail to produce output that's not an
error). The `&&` functionality will join the output of the commands when successful.
## Sample Configuration
```json
{
"type": "prompt",
"alignment": "right",
"segments": [
{
"type": "command",
"style": "plain",
"foreground": "#ffffff",
"properties": {
"shell": "bash",
"command": "git log --pretty=format:%cr -1 || date +%H:%m:%S"
}
}
]
}
```
## Properties
- shell: `string` - the shell in which to run the command in. Uses `shell -c command` under the hood.
- command: `string` - the command(s) to run
2020-10-25 05:11:40 -07:00
2022-01-22 10:46:56 -08:00
## [Template][templates] Properties
- `.Output`: `string` - the output of the command.
2020-10-25 05:11:40 -07:00
[env]: /docs/environment
2022-01-28 04:42:34 -08:00
[templates]: /docs/config-templates