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 awkpokazuje 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 -Wi versionmuszą być połączone, aby original-awk nie uważał versionza program. W systemie Ubuntu Linux możesz użyć, sudo update-alternatives --config awkaby 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 --versionlub alternatywnie(s=$(awk -W version </dev/null 2>/dev/null); if [ -n "$s" ]; then printf "$s\n"; else awk --version; fi)