我有这个简单的问题,但我对 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/