0

我想根据是否满足某些要求将 shell 中的变量设置为 true。该要求由awk.

所以这就是我所做的

$  different=false

$  awk 'if (certain requirements met) {'different=true'}' inputfile

$  if $different; then
     print "Different

但是,不同的不设置为true

PS我certain requirements met的绝对是真的。

谢谢

4

2 回答 2

4

awk无法在调用它的 shell 中设置变量。您可以使用exit设置awk的退出状态:

$ if awk 'if (certain requirements met) {exit 0} else { exit 1 }' inputfile; then
>  printf "different\n"
> fi

或捕获awk变量中的输出:

$ different=$( awk 'if (certain requirements met) { print "true" } else { print "false" }' inputfile )
$ if [[ $different = true ]]; then
>  printf "different\n"
> else
>  printf "Not different"
> fi
于 2013-11-05T20:41:48.903 回答
2

这是你如何做到的。

different=$(awk 'if (certain requirements met) {print "true"}' infile)
于 2013-11-05T20:39:35.580 回答