Need help with terraform-shell-resource?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

214 Stars 43 Forks MIT License 95 Commits 6 Opened issues


Run (exec) a command in shell and capture the output (stdout, stderr) and status code (exit status)

Services available


Need anything else?

Contributors list


Build Status

A workaround for <-- please 👍, meanwhile:

This module runs a command as a

and makes the stdout, stderr and exit status available as outputs (stored in triggers map). See an external data source version with more features at (that runs on every apply, this one only runs once when the resource is created and if command is changed).


module "files" {
  source  = "matti/resource/shell"
  command = "ls -l"

output "my_files" { value = module.files.stdout }

Apply complete! Resources: 3 added, 0 changed, 0 destroyed.


my_files = total 16 -rw-r--r-- 1 mpa staff 112 Feb 9 09:06 -rw-r--r-- 1 mpa staff 1007 Feb 9 09:07 terraform.tfstate

Full usage

module "first" {
  source = "matti/resource/shell"

command = ">/tmp/first echo I was here first" }

module "greeting" { source = "matti/resource/shell"

workaround for missing depends_on in modules

depends = [ ]

environment = { GREETING = "hello" }

command = "echo $GREETING world from $(pwd) where /tmp/first has content: $(cat /tmp/first)" command_when_destroy = "echo $GREETING and good bye from $(pwd)"

runs on every apply

trigger = timestamp()

working_dir = "/tmp"

mark outputs (stdout & stderr) as sensitive

sensitive_outputs = true


output "greeting" { value = module.greeting.stdout }

Apply complete! Resources: 6 added, 0 changed, 0 destroyed.


greeting = hello world from /private/tmp where /tmp/first has content: I was here first

Windows support

This module also supports being run on Windows machines (assuming they support Powershell). If the

inputs are specified, they will be used instead of
when Terraform is run on Windows. If they are not specified, the
commands will be run regardless of the operating system.

Additional examples

See tests and examples

Related issues:


We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.