Bash 打印001、002、…、099、100而不是1、2、3、…、99、100

Bash 打印001、002、…、099、100而不是1、2、3、…、99、100,bash,command-line,Bash,Command Line,我想打印以下格式的2个数字: 001002003,…,015016017,…,098099100 因为我在接触{001..100};做 对于接触的j{001..100};做 如果$j>$i;然后 回声$i$j fi 完成 完成 循环执行我希望它执行的操作 但问题是它打印出来时没有0。例如,它打印12、13、1、4、…、99100。 我要打印001 002,001 003,001 004,099 100. 有人知道我该如何解决这个问题吗?使用seq: printf也可以工作。使用以下命令: pr

我想打印以下格式的2个数字: 001002003,…,015016017,…,098099100

因为我在接触{001..100};做 对于接触的j{001..100};做 如果$j>$i;然后 回声$i$j fi 完成 完成 循环执行我希望它执行的操作

但问题是它打印出来时没有0。例如,它打印12、13、1、4、…、99100。 我要打印001 002,001 003,001 004,099 100. 有人知道我该如何解决这个问题吗?

使用seq:

printf也可以工作。

使用以下命令:


printf也可以工作。

一种可能是使用printf:

for i in {1..100}; do
        for j in {1..100}; do
                if (( $j > $i )); then
                        printf "%03d %03d\r\n" $i $j
                fi
        done
done

一种可能是使用printf:

for i in {1..100}; do
        for j in {1..100}; do
                if (( $j > $i )); then
                        printf "%03d %03d\r\n" $i $j
                fi
        done
done

bash4中增加了前导零的保留;您似乎正在使用较旧版本的bash。但是,如果保留0,则必须调整比较,以避免将值视为八进制数。例如,090是一个无效的八进制数

for i in {001..100}; do
  for j in {001..100}; do
    if (( 10#$j > 10#$i )); then
      echo $i $j
    fi
  done
done
不过,最好将printf与C样式for循环一起使用

for ((i=1; i < 101; i++)); do
  for ((j=i+1; j < 101; j++)); do
    printf '%03d %03d\n' "$i" "$j"
  done
done

注:没有可比性;内部循环以大于i的值开始j。

在bash 4中添加了前导零的保留;您似乎正在使用较旧版本的bash。但是,如果保留0,则必须调整比较,以避免将值视为八进制数。例如,090是一个无效的八进制数

for i in {001..100}; do
  for j in {001..100}; do
    if (( 10#$j > 10#$i )); then
      echo $i $j
    fi
  done
done
不过,最好将printf与C样式for循环一起使用

for ((i=1; i < 101; i++)); do
  for ((j=i+1; j < 101; j++)); do
    printf '%03d %03d\n' "$i" "$j"
  done
done

注:没有可比性;内部循环以大于i的值开始j。

我得到这个错误行10::09:对于基本错误标记来说太大的值是09Right。我只解决了你要求的问题。比较正确基数中的数字是另一个历史问题。我得到了错误行10::09:对于基数错误标记来说,值太大是正确的。我只解决了你要求的问题。比较正确基数中的数字是另一个历史问题。为什么输出中有回车符?为什么输出中有回车符?第一部分仍然打印没有0的数字,但printf有效。你知道第一个版本缺少什么吗?正如我在第一句中所说的,你使用的bash版本似乎太旧了;使用较新版本的bash。第一部分仍然打印没有0的数字,但printf可以工作。你知道第一个版本缺少什么吗?正如我在第一句中所说的,你使用的bash版本似乎太旧了;使用较新版本的bash。