Bourne shell 脚本

Bourne shell 脚本

我正在尝试将这行 C 程序转换为 bash 脚本:C:

bin = bin+d*10^n-1;

bin,d,n 被声明为 int。bash:

bin=`exp $bin+$d\*10^n-1`

但它是错误的

答案1

Bash 具有内置的算术表达式功能。该功能称为“算术扩展”。bash 手册页包含更多信息。

语法是$((expression))。 就您而言,脚本可能包含以下内容。

#!/bin/bash

set -x

bin=1
d=2
n=3
echo $((${bin} + ${d}*10^${n}-1))

运算符优先级与 C 类似,但并不完全相同,因为 Bash 和 C 支持不同的运算符。这里有一个有用的参考:https://www.gnu.org/software/bash/manual/html_node/Shell-Arithmetic.html#Shell-Arithmetic

上述内容仅在操作数为 C int 时才适用。算术扩展不支持浮点运算。

相关内容