команда stdout to /dev/null

Буквально воспринимая ваш вопрос, если вы просто хотите получить строку даты на 7 часов позже текущего времени в текущей зоне, это легко:

date -d "7 hours" "+%Y-%m-%d %H:%M:%S"

Однако, если вы действительно хотите получить локальную дату/время в каком-либо другом часовом поясе, вам лучше следовать советам в некоторых других ответах.

0
23.10.2019, 05:36
1 ответ

Необходимо знать, какая команда выполняет вывод в stderr, и убедиться, что перенаправление связано с этой командой.

Вы можете думать о каналах как о()вокруг команд

Итак,

a | b | c

можно рассматривать как

( a ) | ( b ) | (c )

(Это работает не в буквальном смысле, а в ментальной модели ).

А внутри скобок происходит перенаправление.

Итак, ясно, что

( a ) | ( b ) | ( c 2>/dev/null )

не перенаправляет сообщение об ошибке с "а"

но

( a 2>/dev/null) | ( b ) | ( c )

делает

Итак, ваша команда перенаправила ошибку с команды awk. Вы действительно хотите перенаправить ошибку из ldapsearch.

Так

$ ldapsearch -Y GSSAPI -b "cn=users,cn=accounts,dc=example,dc=com" "uid=foo" 2>/dev/null | grep krbPasswordExpiration | tail -n1 | awk '{print $2}'
2
28.01.2020, 02:29

Теги

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