Показать с 1 по N на терминале

Я просто ищу просто, foo 8 покажет это:

1
2
3
4
5
6
7
8

PS: Я ищу только для командной строки. Я знаю, как создать это, используя for в bash

1
задан 12 August 2014 в 14:28

4 ответа

{1..8} даст вам простой диапазон аргументов в Bash.

Если вам понадобится эта строка за строкой, я бы посоветовал подавать ее на что-то вроде printf:

$ printf '%d\n' {1..8}
1
2
3
4
5
6
7
8
17
ответ дан 24 May 2018 в 05:17
  • 1
    здесь, если 8 - параметр. что я должен написать? Я имею в виду: printf '% d \ n' {0..a}? Благодарю. – Mohammad Reza Rezwani 14 August 2014 в 19:19
  • 2
    Я пытаюсь $ a и $ {a} и ... – Mohammad Reza Rezwani 14 August 2014 в 19:26
  • 3
    @lion Вам нужно переоценить линию, потому что Bash не будет расширяться. Это становится чем-то вроде n=5; printf '%d\n' $(eval echo {0..$n}) – Oli♦ 14 August 2014 в 19:37

Вы также можете использовать команду 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
7
ответ дан 24 May 2018 в 05:17
  • 1
    Просто хедз-ап, вывод начинается с новой строки, которую, возможно, придется обрезать (возможно, с помощью tail?), Если вы используете сгенерированный список чисел в скрипте. – IQAndreas 27 July 2014 в 09:40
  • 2
    @IQAndreas Я сделал редактирование и добавил все команды, о которых я мог думать, чтобы удалить новую строку. – Registered User 27 July 2014 в 17:34

В качестве альтернативы вы можете получить его простейшим способом следующим образом:

$ echo {1..8} | tr ' ' '\n'
1
2
3
4
5
6
7
8

OR:

$ for ((i=1 ; i<=8 ; i++)) do echo $i ; done;
1
2
3
4
5
6
7
8

8 можно заменить на ваше «N» положительное целое!

6
ответ дан 24 May 2018 в 05:17

Вы можете использовать эту простую команду 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
4
ответ дан 24 May 2018 в 05:17
  • 1
    ОП указывает: Я знаю, как создать это для bash . Используйте while, чтобы принести что-то новое. – Radu Rădeanu 26 July 2014 в 17:01
  • 2
    @ RaduRădeanu добавила команду awk. – Avinash Raj 26 July 2014 в 21:54
  • 3
    Он все еще использует for :) – Radu Rădeanu 26 July 2014 в 22:00
  • 4
    OMG, я думаю, он не означает awk для команды. – Avinash Raj 26 July 2014 в 22:01
  • 5
    И также я думаю, что он не означает такую ​​длинную команду ... WOE использовать bla bla bla ... print i ... bla bla, когда вы можете использовать только printf '%d\n' {1..8}? – Radu Rădeanu 26 July 2014 в 22:16

Другие вопросы по тегам:

Похожие вопросы: