是否有if at at at awk中的陈述来比较文件中的单词



我是任何编程和外壳脚本的新手。

我正在尝试在Shell脚本中制作IF条件。我被用于密度功能理论的一些计算机代码(例如量子意式浓缩咖啡(。

我想通过shell脚本自动制作程序。

我的代码会产生case.data,其中包含在端停止处($ 2,或者我们可以在第二列中说(。例如,下面的脚本应打印停止

cat case.data | tail -n 1 | awk '{print $2}'

因此,如果我从上面的脚本停止,则如果语句不得产生任何内容,则应执行其余文件。如果我不从上面的脚本上方停止,则不应执行文件中的可执行命令,并且应执行包含退出的文本文件,以便终止我的作业。

我尝试的是:

#!bin/bash
#  Here I have my other commands that will give us case.data and below is my if statement.
STOP=$(cat $case.dayfile | tail -n 1 | awk '{print $2}')
if [$STOP =="stop"]
then
         echo "nil"
 else
    echo "exit" > exit
   chmod u+x exit
   ./exit
fi
#  here after  I have other executable that will be executed depending on above if statement

您的整个脚本应更改为仅仅是假设您确实想在成功案例中打印" nil",这是由于某种原因:

awk '{val=$2} END{if (val=="stop") print "nil"; else exit 1}' "${case}.data" || exit

,否则:

awk '{val=$2} END{exit (val=="stop" ? 0 : 1)}' "${case}.data" || exit

我在最后一个脚本中使用了三元,而不仅仅是exit (val!="stop"),或者为了清晰度,在条件下true的相反值,而在退出状态下的success

这样?:

if awk 'END{if($2!="stop")exit 1}' case.data
then 
    echo execute commands here
fi

最新更新