Bash: Einstellung für den Schleifenbereich über cli arg?

0

Das Setzen des for-Schleifenbereichs auf 20 funktioniert einwandfrei:

$ cat test.sh

#!/bin/bash
for i in {1..20}; do
  echo "$i"
done

Aber wie stelle ich das Zähllimit mit einem Argument von der Kommandozeile aus ein?

for i in {1.."$1"}; do
  echo "$i"
done

$ ./test.sh 55

{1..55}

user762744
quelle

Antworten:

0

Um das, was Sie bereits haben, zu erweitern, können Sie eval verwenden.

#!/bin/bash

for i in $(eval echo {1.."$1"}); do
  echo "$i"
done
Mikael Kjær
quelle