Tôi muốn chạy lệnh system
trong tập lệnh awk và nhận được kết quả đầu ra được lưu trữ trong một biến. Tôi đã cố gắng để làm điều này, nhưng đầu ra của lệnh luôn luôn đi vào vỏ và tôi không thể nắm bắt nó. Bất kỳ ý tưởng về cách này có thể được thực hiện?Gán đầu ra của lệnh hệ thống thành biến
Ví dụ:
$ date | awk --field-separator=! {$1 = system("strip $1"); /*more processing*/}
nên gọi lệnh strip
hệ thống và thay vì gửi đầu ra vào vỏ, nên gán sản lượng trở lại $1
để chế biến nhiều hơn nữa. Rignt bây giờ, nó gửi đầu ra đến shell và gán mã của lệnh vào $1
.
nit: Sản lượng sẽ không vỏ, nó sẽ đến nhà ga/console. Shell không đọc bất kỳ đầu ra nào của con của nó - chúng chỉ chia sẻ các bộ mô tả tập tin được liên kết với cùng một tty. –