使用shell脚本和BC

时间:2014-11-18 19:35:47

标签: linux bash shell bc

我在很多方面对编程非常陌生,所以感谢你忍受我的愚蠢,因为我确信我没有以正确的方式提出这个问题。

我多年来第一次不得不使用linux机器和许多命令行。我需要使用编写并准备好的云模型进行蒙特卡罗模拟。它有一个输入文件,我需要改变设置输入值,使用某种随机数生成器生成。我的主管坚持认为我使用BC来生成随机数。

我的理解是BC是一种语言。我已经使用以下方式下载了它:

sudo apt-get install bc

现在我想我应该尝试编写某种脚本来制作原始输入文件的副本,然后在原始文件中搜索字符串并用我希望它使用的字符串替换它们。我想我可以用shell脚本做到这一点吗?

我不明白我如何同时使用bc和bash。如果我输入BC命令它会这样做吗? BC是否执行shell命令?这是如何工作的?

在你的回答中记住我只是一个留下电脑的实验室猴子,他对编程并不是很了解。

2 个答案:

答案 0 :(得分:1)

shellbc之间进行互动的一种方式:

$ echo "$RANDOM % 5" | bc

将打印0到4

范围内的随机数

$RANDOM是一个伪随机整数,可直接在shell中使用。

请注意,使用shell变量必须使用双引号。使用单引号,永远不会评估变量。

之后,您可以根据需要使用(( ))算术运算符进行算术运算:

value=$(echo "$RANDOM % 5" | bc)  # 0 10 4
((value*10))                      # value X 10
echo $value                       # display $value value
echo "scale=2; $value / 100" | bc # scale=display 2 decimal

答案 1 :(得分:1)

您可以在shell脚本中使用bc,例如

#!/bin/bash

# Generate random number between 0 and 9
RANDVAR=$(echo "$RANDOM % 10" | bc)
echo $RANDVAR

这个简单的脚本显示了如何为变量分配名称并在稍后的脚本中使用它。在" $()"将运行,并将结果分配给名称(在本例中为RANDVAR)。您可以在替换后使用此变量,例如使用sed