bash中的数字和字符串操作

我写了一个小的bash脚本(我的第一个),它执行以下操作:

sed -e 's/Alpha=0/Alpha=x/' -e 's/Beta=0/Beta=y/' <file.pov >tmpfile.pov
povray Width=480 Height=360 +Itmpfile.pov +Ofile_x_y.png 

一切都是有意的,但现在我想将这两行打包成一个循环,x = 0:30:180和y = 0:30:90(编辑:我的意思是{0,30,60中所有可能的x组合,{90,620,180}和y在{0,30,60,90}).

因此,例如对于x = 60和y = 30,代码应该如下所示:

sed -e 's/Alpha=0/Alpha=60/' -e 's/Beta=0/Beta=30/' <file.pov >tmpfile.pov
povray Width=480 Height=360 +Itmpfile.pov +Ofile_60_30.png

我知道,它应该不会太难,但出于某种原因,我自己也无法解决这个问题.

很抱歉打扰我的新手问题!

最佳答案 使用seq和for循环:

for x in `seq 0 30 180`
do for y in `seq 0 30 90`
do sed -e 's/Alpha=0/Alpha='$x'/' -e 's/Beta=0/Beta='$y'/' <file.pov >tmpfile.pov
    fn="file_${x}_${y}.png"
    povray Width=480 Height=360 +Itmpfile.pov +O${fn}
done done

即使您不需要数字,seq也是一个很棒的工具

for i in `seq 10`
do call_me_ten_times
done
点赞