нужен linux эквивалентный windows "echo% date%% time%% COMPUTERNAME%" - PullRequest
24 голосов
/ 24 сентября 2010

В Linux

"echo %date% %time% %COMPUTERNAME%"

возвращает

%date% %time% %COMPUTERNAME%

, а не

Fri 09/24/2010 10:46:25.42 WXP2010043001

, как в Windows.Я должен быть в состоянии сделать это для журналов, которые я настраиваю.

Ответы [ 7 ]

34 голосов
/ 24 сентября 2010

Используйте команду date в таком формате:

date +"%m/%d/%Y %H:%M:%S $HOSTNAME"

Чтобы получить сотые доли секунды, вам может потребоваться выполнить некоторую обработку текста, например:

DATE=date +'%m/%d/%Y %H:%M:%S.%N'
DATE=${DATE%???????}
DATE="$DATE $HOSTNAME"

Это потому, что дата предлагает секунды, наносекунды и ничего между!

13 голосов
/ 24 сентября 2010

Вы можете сделать:

dt=$(date)
echo $dt $HOSTNAME
12 голосов
/ 01 ноября 2013
echo $(date '+%Y %b %d %H:%M') Your output $HOSTNAME     

Выходы:

2013 Nov 01 09:11 Your output PEGASUS-SYDNEY-CL2
7 голосов
/ 14 декабря 2012

для этого также можно использовать символы обратной метки:

echo `date` `hostname`

или с (локализованным) форматированием даты:

echo `date +"%a %x %X"` `hostname`
2 голосов
/ 24 сентября 2010

Несколько человек предоставили ответы на основе date, но для вашего вопроса требуется короткое название дня (хотя в моей установке Win 7 в Великобритании для него не указана указанная вами команда ECHO), которого никто не имеет (пока)адресу.

Чтобы получить это, вы, вероятно, захотите включить %a в строку формата:

date "+%a %m/%d/%Y %H:%M:%S $HOSTNAME"
2 голосов
/ 24 сентября 2010

В качестве дополнения: символ процента не используется для ссылки на переменные в любой оболочке Linux. Вы должны использовать знак доллара для этого.

Возможно, вам следует прочитать введение в Bash ( здесь )

1 голос
/ 24 сентября 2010

В Linux есть команда date . Если вам не нравится формат по умолчанию, его можно изменить. См. Справочную страницу дата

Для имени хоста вы можете использовать команду hostname или $ HOSTNAME переменную среды, если она установлена.

С именем системы все сложнее. Вы можете использовать uname -a , иногда оно содержит имя ОС. Некоторые дистрибутивы также имеют lsb-release , но не все из них.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...