bash 脚本重复元素

问题描述 投票:0回答:1

我正在编写一个 shell 脚本来运行终端命令 10 次,其中“mid”部分在 [1, 10] 中重复 i。

intro="0:R:1:6,0:R:1:7,0:R:1:8,0:R:1:9,0:R:1:10,0:R:1:11,0:R:1:12,0:R:1:13,0:R:1:14,0.5:R:1:15,"
mid="0:r:1:0,0:b:1:0,0:s:1:0,0:v:1:0,0:h:1:0,0:r:1:0,0:b:1:0,0:s:1:0,0:v:1:0,0:h:1:0,\
0:r:1:1,0:b:1:1,0:s:1:1,0:v:1:1,0:h:1:1,0:r:1:1,0:b:1:1,0:s:1:1,0:v:1:1,0:h:1:1,\
0:r:1:2,0:b:1:2,0:s:1:2,0:v:1:2,0:h:1:2,0:r:1:2,0:b:1:2,0:s:1:2,0:v:1:2,0:h:1:2,\
0:r:1:3,0:b:1:3,0:s:1:3,0:v:1:3,0:h:1:3,0:r:1:3,0:b:1:3,0:s:1:3,0:v:1:3,0:h:1:3,\
0:r:1:4,0:b:1:4,0:s:1:4,0:v:1:4,0:h:1:4,0:r:1:4,0:b:1:4,0:s:1:4,0:v:1:4,0:h:1:4,\
0:r:1:5,0:b:1:5,0:s:1:5,0:v:1:5,0:h:1:5,0:r:1:5,0:b:1:5,0:s:1:5,0:v:1:5,0:h:1:5,\
0:r:1:6,0:b:1:6,0:s:1:6,0:v:1:6,0:h:1:6,0:r:1:6,0:b:1:6,0:s:1:6,0:v:1:6,0:h:1:6,\
0:r:1:7,0:b:1:7,0:s:1:7,0:v:1:7,0:h:1:7,0:r:1:7,0:b:1:7,0:s:1:7,0:v:1:7,0:h:1:7,\
0:r:1:8,0:b:1:8,0:s:1:8,0:v:1:8,0:h:1:8,0:r:1:8,0:b:1:8,0:s:1:8,0:v:1:8,0:h:1:8,\
0:r:1:9,0:b:1:9,0:s:1:9,0:v:1:9,0:h:1:9,0:r:1:9,0:b:1:9,0:s:1:9,0:v:1:9,0:h:1:9,"
outro="0:T:1:0,0:T:1:1,0:T:1:2,0:T:1:3,0:T:1:4,0:T:1:5,0:T:1:6,0:T:1:7,0:T:1:8,0:R:1:9"

touch ../eval/"times.txt"
for i in {1..10}
do
    # concatenate intro, mid (repeated i times), and outro
    echo "starting requst $i"
    script="${intro}${mid}${outro}"
    # run terminal command with script
    /usr/bin/time -v ./server_mimg -q 1500 -w 1 -p FIFO 2222 & ./client 2222 -I ./images/ -L "${script}" >> ../eval/times.txt
    # wait for script to be done running
    wait
    echo "request $i complete"
done

我特别需要“script="${intro}${mid}${outro}”行的帮助,因为我不确定如何让中间部分在每次迭代中重复 i 次。任何其他突出的语法错误抓住将不胜感激!

bash sh
1个回答
0
投票

您可以使用嵌套循环来连接

$mid
所需的次数。

for i in {1..10}
do
    # concatenate intro, mid (repeated i times), and outro
    echo "starting requst $i"
    script="$intro"
    for ((x = 0; x < i; x++)); do
        script="$script$mid"
    done
    script="$script$outro"
    # run terminal command with script
    /usr/bin/time -v ./server_mimg -q 1500 -w 1 -p FIFO 2222 & ./client 2222 -I ./images/ -L "${script}" >> ../eval/times.txt
    echo "request $i complete"
done
© www.soinside.com 2019 - 2024. All rights reserved.