【问题标题】:Bash script, please help me to make it [closed]Bash脚本,请帮我制作它[关闭]
【发布时间】:2013-12-10 03:43:27
【问题描述】:

我想制作 bash 脚本...

结果:

Row 1 : 1 2 3 4 5 6 7 8 9 10

Row 2 : 1 2 3 4 5 6 7 8 9 10

Row 3 : 1 2 3 4 5 6 7 8 9 10

Row 4 : 1 2 3 4 5 6 7 8 9 10

Row 5 : 1 2 3 4 5 6 7 8 9 10

Row 6 : 1 2 3 4 5 6 7 8 9 10

你能帮我吗...?

我是这样弄的:

  for i {1..6}
  do
    for j {1..10}
    do
      list=$j
    done
    echo "Row $i = $list"
  done

【问题讨论】:

  • 我已经编辑了我的帖子……你能再看一遍吗?

标签: linux bash shell loops


【解决方案1】:

您的代码存在一些问题。

您的 for 循环语法不正确 - 您缺少 in :: for i in {1..6}

您正在替换 list 的值,而不是附加下一个数字 :: list="$list$j "

你需要为每一行重置list的值 :: list=""

for i in {1..6}
do
  list=""
  for j in {1..10}
  do
    list="$list$j "
  done
  echo "Row $i = $list"
done

【讨论】:

    【解决方案2】:

    单线:

    $ seq -f "Row %g : $(seq -s' ' 10)" 6
    Row 1 : 1 2 3 4 5 6 7 8 9 10
    Row 2 : 1 2 3 4 5 6 7 8 9 10
    Row 3 : 1 2 3 4 5 6 7 8 9 10
    Row 4 : 1 2 3 4 5 6 7 8 9 10
    Row 5 : 1 2 3 4 5 6 7 8 9 10
    Row 6 : 1 2 3 4 5 6 7 8 9 10
    $ 
    

    鉴于您必须使用 for 循环的限制,您应该能够在其他答案的帮助下解决此问题。

    为了帮助您以后再次调试此类事情,您可以将set -x 添加到脚本的顶部(在#!/bin/bash 下)。这将打开一堆调试输出,这将帮助您了解脚本正在做什么以及您需要做什么才能使其执行您想要的操作。

    The set builtin

    【讨论】:

    • hmmm...我想用for循环制作bash脚本...
    • @user2467583 - 您应该编辑您的问题以表明该约束
    猜你喜欢
    • 2010-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-06
    相关资源
    最近更新 更多