Я новачок у терміналі і намагаюся навчитися ним користуватися.
Що роблять ці рядки? А як вони працюють?
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біля оболонки.