Я новичок в терминале и пытаюсь научиться им пользоваться.
Что делают эти строки? И как они работают?
echo -n "Today's date is: "
date +"%A, %B %-d, %Y"
Я новичок в терминале и пытаюсь научиться им пользоваться.
Что делают эти строки? И как они работают?
echo -n "Today's date is: "
date +"%A, %B %-d, %Y"
Ответы:
$ type echo
echo is a shell builtin
это означает, что echo
команда является частью самой bash
программы (если вы используете bash)
-n
это вариант, так что давайте посмотрим, что он делает
$ help echo
Write arguments to the standard output
...
-n do not append a newline
Итак, когда мы запускаем линию:
zanna@monster:~$ echo -n "Today's date is: "
Today's date is: zanna@monster:~$
Хм, это выглядит не очень хорошо, потому что после напечатанного текста нет новой строки. Мы вернемся к этому.
$ type date
date is /bin/date
ну так date
команда это отдельная программа. Что оно делает?
$ man date
Display the current time in the given FORMAT, or set the system date.
Символы после date
команды представляют собой параметры формата (перед которыми должны стоять символы +
) - указываются разные части даты (например, %A
полное имя дня недели - man date
полный список параметров см. В остальной части )
$ date +"%A, %B %-d, %Y"
Tuesday, February 7, 2017
Так что, если мы соберем команды в сценарии и затем запустим сценарий, мы получим
Today's date is: Tuesday, February 7, 2017
Ницца! Если вам нужен тот же эффект в терминале, вы можете использовать точку с запятой для разделения двух команд вместо новой строки:
$ echo -n "Today's date is: " ; date +"%A, %B %-d, %Y"
Today's date is: Tuesday, February 7, 2017
Вы должны начать с справочных страниц, команда man
. Просто введите, man <command>
чтобы получить информацию о <command>
. Навигация man
не очень интуитивно понятна, но есть много руководств, например, https://wiki.gentoo.org/wiki/Man_page/Navigate#Navigating_and_searching_man_pages .
Соответствующие части man echo
и man date
:
echo [SHORT-OPTION]... [STRING]...
Echo the STRING(s) to standard output.
-n do not output the trailing newline
Таким образом, он печатает строку и не переходит на новую строку после этого (что является поведением по умолчанию), поэтому выходные данные следующей команды будут напечатаны справа от отображаемой строки.
date [OPTION]... [+FORMAT]
FORMAT controls the output. Interpreted sequences are:
%A locale's full weekday name (e.g., Sunday)
%B locale's full month name (e.g., January)
%d day of month (e.g., 01)
%Y year
By default, date pads numeric fields with zeroes. The following optional flags may follow '%':
- (hyphen) do not pad the field
Надеюсь, это понятно. Не стесняйтесь спрашивать, если нет.
date
делает дату шоу в терминале (интерфейс командной строки). Если вы хотите что-то еще (например, то, что предлагает Занна), пожалуйста, задайте новый вопрос.
echo -n "Today's date is: "
Он напечатает: Сегодняшняя дата:
date +"%A, %B %-d, %Y"
Будет напечатано что-то вроде этого: вторник, 7 февраля 2017 г.
Совет :
используйте man
или --help
команду, чтобы узнать больше о любых других командах.
например:
man echo
echo --help
Попробуйте эти задачи, задачи действительно полезны, чтобы помочь вам научиться делать что-то на терминале.
$ man date && man echo
на оболочке.