Что означает этот синтаксис?

Я плохо знаком с терминалом и пытающийся изучить, как использовать его.

Что делают эти строки? И как они работают?

echo -n "Today's date is: "
date +"%A, %B %-d, %Y"
16
задан 7 February 2017 в 21:28

3 ответа

$ type echo
echo is a shell builtin

значение, echo команда является частью 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
76
ответ дан 23 November 2019 в 02:26

Необходимо запустить со страниц руководства, команды 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

я надеюсь что ясный it’s. Не стесняйтесь спрашивать если нет.

10
ответ дан 23 November 2019 в 02:26
echo -n "Today's date is: "

Это распечатает: Сегодняшняя дата:

date +"%A, %B %-d, %Y"

Это распечатает что-то вроде этого: вторник, 7 февраля 2017

Совет :

  1. использование man или --help команда для знания больше о любых других командах.
    , например:

    man echo
    echo --help
    
  2. Попытка эти проблемы проблемы действительно хороши, чтобы помочь Вам учиться делать вещи на терминале.

4
ответ дан 23 November 2019 в 02:26

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

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