Bash 4.4 提示转义当前正在运行的作业数量

标签 bash special-characters operator-keyword parameter-expansion

我偶然发现了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/

相关文章:

bash - 我需要我的脚本来编辑和强制写入只读文件

c++ - C++ 中重载算术运算符的最佳签名是什么?

syntax - 什么是 := operator?

java - 我正在使用运算符 |和 & 但没有得到正确的答案

c# - 为什么 nunit 不运行包含控制/特殊字符的测试

linux - 如何在bash中用另一个整数变量来增加一个整数变量?

linux - Bash - 分割目录字符串

linux - 在 bash shell 中区分 pst 和 dbx 文件的正确方法

php - 更新mysql表编码特殊字符

html - 如何在 Chrome 和 Opera 中显示 "—"标志?