gpt4 book ai didi

linux - 通过 $@ 杀死

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

谁能帮我解释一下我从一本书中得到的这个脚本。练习是编写一个名为 killalljobs 的脚本来终止所有后台作业。

为此给出的代码是:

  kill "$@" $( jobs -p) 

我确定我在这里真的很厚。我知道使用命令替换 $( jobs –p) 是所有后台作业 PID 的值。此外,如果脚本使用“killalljobs”命令运行,则 kill 命令将终止这些作业。我不确定 $@ 是什么?我知道它通常会扩展为运行脚本时给定的参数值。

在这种情况下,这是否意味着提供给 killalljobs 命令的参数?如果是这种情况,我不确定您会给 killalljobs 命令提供什么参数?

最佳答案

"$@" 是一开始给脚本的参数,意味着用类似暴力的方式调用它(a):

killalljobs -9

将转化为:

kill -9 <pid1> <pid2> ...

摘自 bash 联机帮助页,略作释义:

$@ Expands to the positional parameters, starting from one. When the expansion occurs within double quotes, each parameter expands to a separate word. That is, "$@" is equivalent to "$1" "$2".


(a) -9,正如评论中所指出的,通常应该是终止进程的最后手段,因为它“无法讨价还价,无法解释,不会感到怜悯、悔恨或恐惧,而且它绝对不会停止,永远,直到这个过程结束。”

我只是将其用作传递参数的示例。

关于linux - 通过 $@ 杀死,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33020149/

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