Trong bash $0
chứa tên của tập lệnh, nhưng trong awk nếu tôi tạo tập lệnh có tên myscript.awk với nội dung sau:
#!/usr/bin/awk -f
BEGIN{ print ARGV[0] }
và chạy nó, nó sẽ chỉ in "awk". Ngoài ra, ARGV [i] với i> 0 chỉ được sử dụng cho các đối số tập lệnh trong dòng lệnh. Vậy, làm thế nào để làm cho nó in tên của kịch bản, trong trường hợp này là "myscript.awk"?
mawk
là mặc định trên Ubuntu? Trên máy ảo 15.04 của tôi, mặc định awk
là gawk
. Trong khi mawk được cài đặt, nó không phải là mặc định.
awk -f myscript.awk
. Tuy nhiên, điều này không liên quan đến vấn đề trong câu hỏi.
awk
kịch bản bởi vì nó bắt đầu bằng #!/usr/bin/awk -f
. Shell script bắt đầu bằng #!/bin/sh
(hoặc một cái gì đó tương tự).
awk -f file
.