Я новачок у терміналі і намагаюся навчитися ним користуватися.
Що роблять ці рядки? А як вони працюють?
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
робить дату шоу в терміналі (інтерфейс командного рядка). Якщо ви хочете чогось більшого (наприклад, що пропонує Zanna), будь ласка, задайте нове запитання.
echo -n "Today's date is: "
Він надрукує: Сьогоднішня дата:
date +"%A, %B %-d, %Y"
Він надрукує щось подібне: вівторок, 7 лютого 2017 року
Поради :
використовуйте man
або --help
команду, щоб дізнатися більше про будь-які інші команди.
наприклад:
man echo
echo --help
Спробуйте ці складні виклики справді добре допомогти вам навчитися робити справи на терміналі.
$ man date && man echo
біля оболонки.