gpt4 book ai didi

bash - 在 bash 脚本中更新 for 循环内的变量(依次添加值)

转载 作者:行者123 更新时间:2023-12-02 01:53:58 26 4
gpt4 key购买 nike

我正在尝试更新 for 循环中的变量,依次添加到该变量,然后将其打印到一系列文件名。

实际上,我想顺序更新一系列文件,从tmp文件distTmp.RST到顺序dist1.RSTdist2.RST,等等。原始的 distTmp.RST 包含名为“WWW”的行。我想将字符串替换为 dist1.RST 中名为 21.5、dist2.RST 中的 22.523.5 的值在 dist3.RST 等...

我的代码如下:

#!/bin/bash

wm=1
wM=70
wS=1

F=20.5

for W in {${wm}..${wM}..${wS}}; do

F=$(${F} + 1 | bc)
echo ${F}
sed "s/WWW/"${F}"/g" distTmp.RST > dist${W}.RST
done
echo ${F}

========

但是我收到如下错误消息:

change.sh:第 13 行:20.5 + 1 | bc:语法错误:算术运算符无效(错误标记为“.5 + 1 | bc”)

请向我建议一个解决方案。

最佳答案

Kindly suggest me a solution to the same.


这可能会达到你想要的效果。使用 C 风格的 for 循环。

#!/usr/bin/env bash

wm=1
wM=70
wS=1

F=20.5

for ((w=wm;w<=wM;w+=wS)); do
f=$(bc <<< "$F + $w")
echo "$f"
sed "s/WWW/$f/g" distTmp.RST > "dist${w}.RST"
done

  • 脚本中的错误可能是由于扩展顺序造成的。大括号扩展发生在变量之前。

  • 参见Shell Expansion

关于bash - 在 bash 脚本中更新 for 循环内的变量(依次添加值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69848618/

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