Code:
356 ifeq (x$(MERGE_GROUP),xtrue)
357 group.byname: $(GROUP) $(GSHADOW) $(YPDIR)/Makefile
358 @echo "Updating $@..."
359 @$(UMASK); \
360 $(MERGER) -g $(GROUP) $(GSHADOW) | \
361 $(AWK) -F: '!/^[-+#]/ { if ($$1 != "" && $$3 >= $(MINGID) && $$3 != $(NFSNOBODYGID) ) \
362 print $$1"\t"$$0 }' | $(DBLOAD) -i $(GROUP) -o $(YPMAPDIR)/$@ - $@
363 -@$(NOPUSH) || $(YPPUSH) -d $(DOMAIN) $@
- @ đứng trước một lệnh trong Makefile: chạy lệnh này nhưng đừng `echo` output ra màn hình.
- $@: tên của target
- $$i: có thể hiểu tương tự như $i trong shell script
Bạn thử thay hết các biến kia thành giá trị được định nghĩa bên trên rồi viết thành 1 cái shell script xem. Chạy từng dòng, từng phần một để hiểu rõ hơn, ví dụ đoạn này:
Code:
/usr/lib/yp/yphelper -g /etc/group /etc/shadow | awk -F: '!/^[-+#]/ { if ($1 != "" && $3 >= 500 && $3 != 65534) print $1"\t"$0 }'
sẽ liệt kê các users "thật sự" trên hệ thống (uid >= 500).