linux - 如何在 bash 打印字符串中插入 ($x-$y)

标签 linux bash shell command-line sh

我有这个简单的问题,但我对 bash 语法非常不熟悉; 我需要打印这一行,它应该输出类似 Starting 3 more instances 的内容:

echo 'Starting '($2 - $total_running_instances)' more instances'

但我不知道 bash 如何期望我将 x - y 计算链接到字符串的其余部分,我尝试在它们之间放置“+”或“。”就像 PHP 处理字符串一样,如果我尝试这种方式,我会得到语法错误:

echo 'Starting '.($2 - $total_running_instances).' more instances'

echo 'Starting '+($2 - $total_running_instances)+' more instances'

最佳答案

算术扩展(计算算术表达式并扩展其结果)的表示法是$((...))。你可以这样写:

echo "Starting $(($2 - total_running_instances)) more instances"

参见 §3.5.5 "Arithmetic Expansion" in the Bash Reference Manual .

您看到的问题是 (...) 不是算术扩展的表示法,而是在中运行整个 Bash 命令的表示法一个subshell .

关于linux - 如何在 bash 打印字符串中插入 ($x-$y),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26122778/

相关文章:

mysql - 截断两个日期之间的表(使用 MySQL 和 bash 脚本)

shell - 我怎么知道 wget 是否真的下载了一个文件?

node.js - 使用 powershell 登录 firebase

java - 在 Linux 中获取退回邮件

php - Linux 上 Azure 应用服务上的 Wordpress 上的 "cURL error 28: Resolving timed out"

linux - Linux 中大小介于 2 之间的文件数

bash - "dir/*: No such file or directory"与 find -exec ... "{}/*"

linux - _GLOBAL_OFFSET_TABLE 是什么?

java - 为什么在 Java 中通过 JNA 调用 fork 不可靠?

bash - 使用awk提取vcf列子字符串