Подтвердить что ты не робот

Нужен linux, эквивалентный окнам "echo% date%% time%% COMPUTERNAME%"

В Linux,

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

возвращает

%date% %time% %COMPUTERNAME%

не

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

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

4b9b3361

Ответ 1

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

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

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

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

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

Ответ 2

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

dt=$(date)
echo $dt $HOSTNAME

Ответ 3

echo $(date '+%Y %b %d %H:%M') Your output $HOSTNAME     

Выходы:

2013 Nov 01 09:11 Your output PEGASUS-SYDNEY-CL2

Ответ 4

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

echo `date` `hostname`

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

echo `date +"%a %x %X"` `hostname`

Ответ 5

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

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

Ответ 6

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

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

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

Ответ 7

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

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

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