Pipe output to environment variable export command

$1 is used to access the first argument in a script or a function. It is not used to access output from an earlier command in a pipeline.

You can use command substitution to get the output of the git command into an environment variable like this:

GIT_HASH=`git log --oneline -1` && export GIT_HASH

However...

This answer is specially in response to the question regarding the Bourne Shell and it is the most widely supported. Your shell (e.g. GNU Bash) will most likely support the $() syntax and so you should also consider Michael Rush's answer.

But some shells, like tcsh, do not support the $() syntax and so if you're writing a shell script to be as bulletproof as possible for the greatest number of systems then you should use the `` syntax despite the limitations.


Or, you can also do it using $(). (see What is the benefit of using $() instead of backticks shell scripts?)

For example:

export FOO_BACKWARDS=$(echo 'foo' | rev)

Tags:

Sh