【问题标题】:How to pass two variables to a folder name in a for-loop [duplicate]如何在for循环中将两个变量传递给文件夹名称[重复]
【发布时间】:2019-03-31 17:11:00
【问题描述】:

我想将文件夹 M0R0 复制到 M1R0、M1R1、M1R2 等。

echo -n "M= "
read m
echo -n "From run= "
read r1
echo -n "To run= "
read r2

for i in $(seq $r1 $r2)
do
        echo "M$mR$i"
        cp -rp M0R0 M$mR$i
done

然而,这段代码忽略了第二个变量 $i,它只创建了目录 M1

【问题讨论】:

  • 问题应该出在$m 变量上。您正在尝试改用 $mR。
  • 当你想在Mx 和Rx 之后循环,你应该在第一个循环内有第二个循环。 for ((m=0;m,10;m++)); do for i=0;i<5;i++)); do ..done;done
  • 你所指的答案对已经知道这个问题答案的人有好处。

标签: bash shell for-loop variables


【解决方案1】:

你真的不需要使用序列。此外,当使用替换时,请使用${} 来指示要替换的变量的位置。

echo -n "M= "
read m
echo -n "From run= "
read r1
echo -n "To run= "
read r2

for ((i=$r1; i <=$r2; ++i));
do
        echo "M${m}R${i}"
        cp -rp M0R0 "M${m}R${i}"
done

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-29
    • 2013-10-25
    • 1970-01-01
    • 1970-01-01
    • 2017-04-01
    • 2016-01-01
    • 1970-01-01
    • 2017-02-13
    相关资源
    最近更新 更多