Вопрос или проблема
Я ищу простую вещь, просто foo 8 будет выводить это:
1
2
3
4
5
6
7
8
PS: Я ищу только командную строку. Я знаю, как это сделать с помощью for
в bash
Чтобы напечатать последовательность чисел, команда ‘seq’ будет вашим другом
seq 8
{1..8}
даст вам простой диапазон аргументов в Bash.
Если вам нужно это построчно, я бы предложил передать это чему-то, например, printf:
$ printf '%d\n' {1..8}
1
2
3
4
5
6
7
8
Вы также можете использовать команду echo
с разверткой скобок
echo -e "\n"{1..8}
1
2
3
4
5
6
7
8
Если вы не хотите начальный перевод строки, вы можете использовать одну из следующих команд.
echo -e "\n"{1..8}|tail -n8
echo -e "\n"{1..8}|grep .
echo -e "\n"{1..8}|grep [0-9]
echo -e "\n"{1..8}|sed 1d
В качестве альтернативы вы можете сделать это самым простым способом, как показано ниже:
$ echo {1..8} | tr ' ' '\n'
1
2
3
4
5
6
7
8
ИЛИ:
$ for ((i=1 ; i<=8 ; i++)) do echo $i ; done;
1
2
3
4
5
6
7
8
8 может быть заменено на ваше положительное целое число ‘N’!
Вы можете использовать эту простую команду for
,
$ for i in {1..8}; do echo $i; done
1
2
3
4
5
6
7
8
С помощью awk,
$ awk 'BEGIN{for(i=1;i<=8;i++) {print i;}}'
1
2
3
4
5
6
7
8
Ответ или решение
Чтобы вывести последовательность чисел от 1 до N на терминале, есть несколько методов, которые можно использовать в командной строке Bash. В данном ответе поясняются различные подходы, среди которых можно выбрать наиболее удобный.
1. Использование команды seq
Самый прямолинейный метод для отображения последовательности чисел – это команда seq
. Если вы хотите вывести числа от 1 до 8, используйте следующую команду:
seq 8
Это приведет к следующему выводу:
1
2
3
4
5
6
7
8
2. Расширение скобок
Однако seq
не единственный способ. Можно также воспользоваться расширением скобок {}
. Для отображения чисел от 1 до 8 можно использовать:
printf '%d\n' {1..8}
Этот метод дает аналогичный результат:
1
2
3
4
5
6
7
8
3. Использование команды echo
Команда echo
с расширением скобок также может быть использована для вывода чисел, но при этом вам может понадобиться дополнительная обработка:
echo -e "\n"{1..8}
На выходе вы получите числа с предварительной строкой, состоящей из пустой строки:
1
2
3
4
5
6
7
8
Если вы хотите избежать пустой строки в начале, можно использовать:
echo {1..8} | tr ' ' '\n'
4. Цикл for
Другой метод – использовать цикл for
. Это особенно полезно, если вы хотите выполнять дополнительные действия с каждым числом:
for ((i=1 ; i<=8 ; i++)); do echo $i; done
Вывод будет:
1
2
3
4
5
6
7
8
5. Использование утилиты awk
Вы можете также использовать awk
для достижения той же цели:
awk 'BEGIN{for(i=1;i<=8;i++) {print i;}}'
Резюме
Каждый из перечисленных методов имеет свои преимущества и может быть использован в зависимости от ваших предпочтений и контекста задачи. Важно понимать, что цифру N можно легко заменить любой положительной целой цифрой, что делает эти команды универсальными для вывода нужного вам диапазона чисел.
Таким образом, вы можете выбрать наиболее подходящий для вас способ в зависимости от ваших нужд в командной строке.