W bash $0
zawiera nazwę skryptu, ale w awk, jeśli utworzę skrypt o nazwie myscript.awk o następującej treści:
#!/usr/bin/awk -f
BEGIN{ print ARGV[0] }
i uruchom go, wypisze tylko „awk”. Poza tym ARGV [i] z i> 0 służy tylko do argumentów skryptu w wierszu poleceń. Jak więc wydrukować nazwę skryptu, w tym przypadku „myscript.awk”?
mawk
jest domyślny w Ubuntu? Na mojej maszynie wirtualnej 15.04 domyślną wartością awk
jest gawk
. Podczas gdy mawk jest zainstalowany, nie jest domyślny.
awk -f myscript.awk
. Nie ma to jednak związku z omawianym problemem.
awk
skrypt, ponieważ zaczyna się od #!/usr/bin/awk -f
. Skrypty powłoki zaczynają się od #!/bin/sh
(lub czegoś podobnego).
awk -f file
.