gpt4 book ai didi

linux - 使用 awk 调用函数和命令

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:10:27 25 4
gpt4 key购买 nike

您好这个脚本工作正常,当有一个 cronjob 在 root 下运行时它会调用该函数

usage ()
{
# Print usage
echo "usage function"
}
#

export -f usage
ps -ef | awk '{if ($0 ~ /crond/ && $1 == "root") {system("/usr/bin/env bash -c usage") }}'

但是,除了调用函数之外,我还喜欢打印 $2 或只调用第二个命令。我无法正确使用语法。有人可以帮忙吗?简而言之,满足条件时如何运行多个命令?在上面的示例中,除了运行 usage() 函数外,我还想运行第二个函数并打印 $2(这是进程 ID)。提前谢谢大家

最佳答案

对于 Bash,您可以使用 ;&& 将命令链接在一起。

;用于分隔命令,但不检查上一条命令的错误码。例如日期; echo 'hi' 将回显 'hi',即使“dddate”可能会返回错误。

&& 只会在前一个命令没有抛出错误的情况下运行后一个命令。例如dddate && echo 'hi'不会运行 echo 命令,因为 dddate 失败。

对于您的使用,您可以:

system("/usr/bin/env bash -c usage") 进入 system("/usr/bin/env bash -c usage); print $2".

root@debian:~# ps -ef | awk '{if ($0 ~ /crond/ && $1 == "root") {system("/usr/bin/env bash -c usage"); print "hi"}}'
usage function
hi

关于linux - 使用 awk 调用函数和命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26936622/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com