Reputation: 1032
I want to set a variable in shell to true depending on if certain requirement is met. That requirement is determined by awk
.
So here's what I do
$ different=false
$ awk 'if (certain requirements met) {'different=true'}' inputfile
$ if $different; then
print "Different
However, different does not set to true
.
PS my certain requirements met
is definitely true.
Thank you
Upvotes: 0
Views: 147
Reputation: 530833
awk
cannot set variables in the shell that called it. You can use exit
to set awk
's exit status:
$ if awk 'if (certain requirements met) {exit 0} else { exit 1 }' inputfile; then
> printf "different\n"
> fi
Or capture the output of awk
in a variable:
$ different=$( awk 'if (certain requirements met) { print "true" } else { print "false" }' inputfile )
$ if [[ $different = true ]]; then
> printf "different\n"
> else
> printf "Not different"
> fi
Upvotes: 4
Reputation: 41436
Here is how you do it.
different=$(awk 'if (certain requirements met) {print "true"}' infile)
Upvotes: 2