Нужен linux, эквивалентный окнам "echo% date%% time%% COMPUTERNAME%"
В Linux,
"echo %date% %time% %COMPUTERNAME%"
возвращает
%date% %time% %COMPUTERNAME%
не
Fri 09/24/2010 10:46:25.42 WXP2010043001
как это делает Windows.
Мне нужно сделать это для журналов, которые я настраиваю.
Ответы
Ответ 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, но не все из них.