2010-09-24 1 views

ответ

27

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

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

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

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

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

+0

именно то, что мне нужно. Благодаря! –

+0

@micah: Если этот ответ разрешил его для вас, примите его, нажав галочку влево – Daenyth

+0

Или вы можете просто ввести «дата», дать вам формат, заданный языковой версией ОС. – Alex

2

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

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

+1

переполнение стека делает меня ленивым! –

1

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

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

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

2

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

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

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

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

echo `date` `hostname` 

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

echo `date +"%a %x %X"` `hostname` 
10
 
echo $(date '+%Y %b %d %H:%M') Your output $HOSTNAME   

Выходы:

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