Jeśli chcę poznać wersję awk, otrzymuję:
$ awk --version
awk: not an option: --version
Sprawdzam man awk
, widzę, że mój awk jest
mawk - język skanowania wzorów i przetwarzania tekstu
mawk
, stąd nieistnienie version
.
Jeśli chcę poznać wersję awk, otrzymuję:
$ awk --version
awk: not an option: --version
Sprawdzam man awk
, widzę, że mój awk jest
mawk - język skanowania wzorów i przetwarzania tekstu
mawk
, stąd nieistnienie version
.
Odpowiedzi:
W tym przypadku man awk
pokazuje nam:
-W wersja
mawk zapisuje swoją wersję i prawa autorskie na stdout i skompilował ograniczenia na stderr i kończy 0.
W moim przypadku,
$ awk -W version
mawk 1.3.3 Nov 1996, Copyright (C) Michael D. Brennan
compiled limits:
max NF 32767
sprintf buffer 2040
Staram się być bardziej ogólny.
awk -Wversion 2>/dev/null || awk --version
działa niezależnie od tego, czy awk wywołuje mawk, gawk czy original-awk dostępne dla systemu Debian / Ubuntu Linux. Zauważ, że -W
i version
muszą być połączone, aby original-awk nie uważał version
za program. W systemie Ubuntu Linux możesz użyć, sudo update-alternatives --config awk
aby zobaczyć i wybrać implementację wywoływaną przez polecenie awk.
awk -W version </dev/null 2>/dev/null|awk '{print $0;nz=1}END{if(!nz)exit 1}' || awk --version
lub alternatywnie(s=$(awk -W version </dev/null 2>/dev/null); if [ -n "$s" ]; then printf "$s\n"; else awk --version; fi)