我偶然发现了this post其中用户chepner在他的回答中建议使用 \j
(如 bash manual 中提到的)来检索后台作业的当前运行计数。
基本上可以归结为
num_jobs="\j"
echo ${num_jobs@P}
谁能告诉我这里究竟发生了什么?例如。
- 为什么
${\j@P}
不起作用, @P
到底在做什么?
最佳答案
与任何参数扩展一样,您必须提供参数的名称,而不是任意字符串。 \j
不是参数的名称;这是您想要从参数扩展中获取的文本。
参数展开后,@P
进一步对结果进行提示展开,将\j
替换为作业数量。
$ num_jobs="\j"
$ echo "${num_jobs}"
\j
$ echo "${num_jobs@P}"
0
关于Bash 4.4 提示转义当前正在运行的作业数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53870897/