Cách sử dụng hàm được xác định với xargs


16

Đây là mã của tôi

#!/bin/bash

showword() {
  echo $1
}

echo This is a sample message | xargs -d' ' -t -n1 -P2 showword

Vì vậy, tôi có một hàm showwordlặp lại bất kỳ chuỗi nào bạn truyền dưới dạng tham số cho hàm.

Sau đó, tôi đã xargscố gắng gọi hàm và chuyển từng từ một cho hàm và chạy song song 2 bản sao của hàm. Điều không hoạt động là xargskhông nhận ra chức năng. Làm thế nào tôi có thể đạt được những gì tôi đang cố gắng làm, làm thế nào tôi có thể làm cho xargs hoạt động với chức năng showword?


Câu trả lời:


25

Hãy thử xuất hàm, sau đó gọi nó trong một khung con:

showword() {
  echo $1
}

export -f showword
echo This is a sample message | xargs -d' ' -t -n1 -P2 bash -c 'showword "$@"' _

Cảm ơn, nhưng bạn nghĩ gì về câu trả lời của tôi ở trên?
GMaster

@FazleA.: Tôi dự định bình luận về điều đó, nhưng vì bạn hỏi ở đây, tôi sẽ trả lời ở đây. Điều đó sẽ không hoạt động, vì khi bạn không chuyển bất kỳ tham số nào showword.
cuonglm

2
Một câu hỏi nữa, tại sao dấu _ là bắt buộc? Có phải là để ngăn chặn xargs xử lý bất cứ điều gì khác?
GMaster


Tôi đang nhận được "xuất khẩu: tùy chọn bất hợp pháp -f" khi tôi xuất khẩu -f
Sagar Chamling
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.