这在 bash 脚本中是什么意思:"if !"$a" function "$b" $$ ; then"

Roc*_*399 0 linux bash shell ubuntu

我对 bash 脚本相当陌生,到目前为止主要在 python 中工作。
if ! "$a" function "$b" $$ ; then在 bash 中究竟是什么意思?

其中,
“a”是变量,
“b”是变量,
“function”是自定义函数

任何帮助,将不胜感激。
谢谢!

use*_*428 5

变量的内容a被视为命令(可执行文件或 bash 函数)。调用此命令,并获取 3 个参数:单词function、变量的内容b和执行此if语句的进程的 PID 。

命令终止后,检查其退出代码:如果它不为零,then则执行复合部分。退出代码的这种解释是凭借!前面的感叹号 ( )。一般来说:

如果你写一个命令为

! cmd
Run Code Online (Sandbox Code Playgroud)

并且 cmd 本身会产生一个非零退出代码,该语句的整体退出代码(即进入的内容$?)为 0。如果 cmd 本身会产生零退出代码。整体退出代码为 1。