gpt4 book ai didi

linux - 从 Ubuntu 终端使用不同的命令行参数循环

转载 作者:太空宇宙 更新时间:2023-11-04 09:13:52 25 4
gpt4 key购买 nike

我试图从 Ubuntu 终端 执行的 C 程序文件(在 Desktop 上)名为 distribution.c

我目前正在使用:

<admin-name>@<admin-name>-Latitude-E4310:~/Desktop$ g++ -o test distribution.c
<admin-name>@<admin-name>-Latitude-E4310:./test d0=0.3 d1=0.7 >output.txt

这适用于将 .c 程序文件生成的输出写入名为 output.txt 的 .txt 文件。但是,我的目标是为从 0.01.0 的每个 d0 值生成输出文件(以 0.01)。一个约束是 d1=1-d0。输出文件应命名为 ouputxyz.txt,其中 xyz 对应于 d0 值中的三位数字。 (示例:当 d0=0.10 时,输出文件名为 output010.txt)。是否可以从 Ubuntu 终端本身为此任务编写一个循环? (我不想为此在原始程序中添加另一个循环。)

顺便说一句,如果您需要有关我正在尝试做的事情的任何其他详细信息,或者您认为可以改进和/或使问题更具体,请在评论中告诉我。我很乐意详细说明。

最佳答案

Bash 不支持浮点运算 - 所以你必须求助于 bc - 如下例所示。

最简单的做法是将它放在 Bash 脚本中。 (您需要安装 bc。)

for ((i=0; i<=100; i++))
do
x=`echo "scale=2; $i/100" | bc`
y=`echo "scale=2; 1-$x" | bc`
d0=`printf %.2f $x`
d1=`printf %.2f $y`
filename=`printf output%03d.txt $i`
./test d0=$d0 d1=$d1 >$filename
done

关于linux - 从 Ubuntu 终端使用不同的命令行参数循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50984409/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com