Почему нельзя установить значение LC_ALL в локали?

Следующая модификация вашего скрипта работает:

lastlogLatest() {
    last -n 1 "${userName}"  | awk ' $1 != "wtmp" {
    for( i=1;i<=NF;i++ ) {
        if ( $i ~ /Mon|Tue|Wed|Thu|Fri|Sat|Sun/ ) {
            j = 0
            str = ""
            for ( j=i; j<=NF;j++ ) {
                str = ( str ? (str FS $j):$j )
            }
            print str
            break
        }
    }
}'
}
userName=somebody
lastlogin=$(lastlogLatest)
if [[ -z "$lastlogin" ]]; then
    echo "${userName} not found in lastlog"
   if cd /home/${userName} 2> /dev/null; then
      date -d "@$(find. -type f -printf '%T@\n' 2> /dev/null | sort -n | head -n1)"
   else
      echo "No home directory found for ${userName}" 1>$2
   fi
else
    echo "$lastlogin"
fi

Я добавил небольшую поправку в сценарий awk, который вырезает строку, сообщающую нам, когда начинается журнал wtmp, чтобы он не вытягивал эту дату и не предполагал, что она предназначена для указанного пользователя.

Кроме того, обратите внимание, что для этого требуется, чтобы любой пользователь, выполняющий его, имел разрешение на проверку домашнего каталога указанного пользователя и файлов в нем.

0
16.02.2020, 05:15
0 ответов

Теги

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