我一直试图在bash的循环外创建文件,我成功使用以下代码生成了文件
for ((i = 0; i <= 5; i++)); do
for ((j = i; j <= 5; j++)); do
echo -e "$i $j" >> numbers.txt
done
done
但是我希望我的结果能以以下方式表现出来
01
02
03
ETC。
但是我得到的结果与此类似
0 0 1 0 2 0 3 0 4 0 5 1 1 1 2 1 3 1 4 1 5 2 2 2 3 2 4 2 5 3 3 3 4 3 5
我该如何解决?
bash
具有C样式的循环,但从风格上讲,当您不必使用它们时,有些奇怪。如果你真的绝对有来,你可能使用了错误的语言。(当然,对于这种用例来说,shell是可以的。)
一种更像shell的方法(我认为)是:
for i in {0..5}; do for j in $(seq "$i" 5); do echo "$i$j"; done; done
这是另一种方法:
(set {0..5}; for i; do for j; do [ "$i" -le "$j" ] && echo "$i$j"; done; done)
我将它们写为适合交互式shell的单行代码,但它们在结构化形式下同样可以很好地工作(通常在脚本中更可取):
set {0..5}
for i; do
for j; do
[ "$i" -le "$j" ] &&
printf '%d%d\n' "$i" "$j"
done
done
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句