For the complete documentation index, see llms.txt. This page is also available as Markdown.

Bash Execute With Progress Action

Bash Execute With Progress Action

The Bash Execute With Progress Action node executes a Unix Bash command and attempts to extract progress information from the command output.

It can be used for long-running operations such as file transfers, downloads, copies, or other command-line processes that provide percentage-based progress output. When progress can be extracted successfully, the related Helmut job is updated during execution.

This node is intended for Unix-based systems such as Linux and macOS.

Bash Execute With Progress Action

Configurable Settings

Async

Enables or disables asynchronous execution.

Command

The Bash command to execute.

Helmut wildcards can be used within the command.

Example:

Paths containing spaces should be enclosed in quotation marks.

Example:

Progress Regex

An optional regular expression used to extract the current progress value from the command output.

The regular expression should contain a capture group that returns the numeric percentage value.

Default example:

This pattern extracts percentage values from output such as:

The captured value 42 is then used to update the job progress.

The configured command must continuously write progress information to the command line for this feature to work.

Progress Message

The job message displayed while the command is running and progress can be determined.

Example:

The extracted percentage is applied to the job together with this message.

Unextractable Progress Message

The message displayed when the command is running but no progress value can be extracted using the configured regular expression.

Example:

Failure to extract progress does not necessarily mean that the command itself has failed. The process continues, but the job progress cannot be updated with a percentage.

Success Message

The job message displayed after the Bash command completes successfully.

Example:


Progress Extraction

The node reads the command-line output while the process is running and applies the configured regular expression to it.

For example, when the command outputs:

and the Progress Regex is:

the node extracts 65 and updates the job progress accordingly.

The first capture group of the regular expression must contain a numeric value suitable for use as a percentage.

Additional Progress Regex Examples

The correct regular expression depends on the progress format written by the executed command. The first capture group must contain the numeric progress value.

Generic Percentage

Matches values such as 42%, Progress: 42%, or Transferred 42%:

Percentage With Decimal Values

Matches values such as 42.5% and captures the whole-number portion:

FFmpeg-Style Progress Output

When FFmpeg is executed with -progress pipe:1, it can output progress values such as:

FFmpeg does not provide a percentage directly. The command must first convert the processed duration into a percentage, or output a custom percentage value.

For custom output such as:

use:

rsync Percentage

Matches common rsync --progress or rsync --info=progress2 output:

Example output:

curl Percentage

Matches the percentage column in the standard curl progress meter:

Depending on the curl output format, a more restrictive expression may be required. A custom curl format is usually more reliable:

For custom percentage output such as progress:42, use:

wget Percentage

Matches common wget output such as 42%:

Fraction-Based Progress

For output such as:

use:

This works when the total is always 100.

For arbitrary totals such as 42/250, the regex can extract the current value:

However, the extracted value is not automatically converted into a percentage. The command should calculate and output the percentage itself.

Bracketed Percentage

Matches output such as:

Labeled Percentage

Matches output such as:

JSON-Style Progress

Matches output such as:

Key-Value Progress

Matches output such as:

Recommendation

Whenever possible, configure the executed command to output a simple and predictable progress format, for example:

Then use:

A dedicated progress marker reduces the chance that unrelated numbers in the command output are interpreted as progress.


Typical Usage

Important Notes

  • The command must be compatible with the Bash environment on the executing system.

  • The executable used by the command must be installed and available to the executing user.

  • The executing user requires the necessary permissions for all referenced files and directories.

  • Progress can only be displayed when the command writes matching progress information to its output.

  • The regular expression must contain a capture group for the numeric progress value.

  • Commands that buffer or suppress their output may not provide usable progress updates.

  • Quote paths that contain spaces or special characters.

  • The node does not automatically make commands safe. Validate wildcard values before using them in shell commands, especially when they may contain user-provided content.

Last updated