Bash 从awk声明shell变量
我想根据是否满足某些要求,将shell中的变量设置为true。该要求由Bash 从awk声明shell变量,bash,shell,awk,Bash,Shell,Awk,我想根据是否满足某些要求,将shell中的变量设置为true。该要求由awk确定 这就是我要做的 $ different=false $ awk 'if (certain requirements met) {'different=true'}' inputfile $ if $different; then print "Different 但是,“不同”未设置为true PS my满足的某些要求肯定是正确的 谢谢以下是您的做法 different=$(awk 'if (
awk
确定
这就是我要做的
$ different=false
$ awk 'if (certain requirements met) {'different=true'}' inputfile
$ if $different; then
print "Different
但是,“不同”未设置为true
PS my满足的某些要求肯定是正确的
谢谢以下是您的做法
different=$(awk 'if (certain requirements met) {print "true"}' infile)
这是你怎么做的
different=$(awk 'if (certain requirements met) {print "true"}' infile)
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
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
else打印“false”
?else打印“false”
?awk无法在父shell中设置shell变量。但是,我相信awk可以为导出到子shell的变量设置值。谢谢。如何退出awkawk
?例如,如果满足某个要求,则退出awk
,这意味着忽略awk
代码的其余部分。我不希望它退出shell代码。只需忽略awk
的其余部分并继续代码的其余部分…awk
有自己的exit
命令,它只退出awk
进程,而不是调用awk
的shell。因此我只需在awk
中编写exit
?是的,正如我在answer.awk中所写的,awk不能在父shell中设置shell变量。但是,我相信awk可以为导出到子shell的变量设置值。谢谢。如何退出awkawk
?例如,如果满足某个要求,则退出awk
,这意味着忽略awk
代码的其余部分。我不希望它退出shell代码。只需忽略awk
的其余部分并继续代码的其余部分…awk
有自己的exit
命令,它只退出awk
进程,而不是调用awk
的shell。因此我只需在awk
中编写exit
?是的,正如我在回答中所写。您可以对所有测试使用awk
,不需要额外的if
测试。您可以对所有测试使用awk
,不需要额外的if
测试。