It seems like what you were hoping to achieve here is for Terraform to execute that
func_test shell function whenever you run
terraform apply. Unfortunately that’s not possible, because the order of operations is the opposite of what you seem to be expecting: the shell is running Terraform, not the other way around.
Because Terraform itself isn’t a shell, it interprets the
TF_CLI_ARGS_apply variable literally, and so it behaves as if you had written something like this:
terraform apply -auto-approve '&&' func_test
I’m using the
' quotes here to signify that the
&& is just taken literally, not interpreted as an operator by the shell. Terraform will therefore think you intend to apply a plan file called
&&, which is not what you intended.
I think the closest you could get to what you attempted here would be to define a shell alias or function, separate from the
terraform command itself, which runs the sequence of commands you want to run. For example:
alias terraform_test='terraform apply -auto-approve && some-cmd'
You can then run
terraform_test instead of
terraform apply to get the effect you wanted.