Câu trả lời:
Bạn có thể sử dụng xargs
, với -t
cờ xargs
sẽ dài dòng và in các lệnh mà nó thực thi:
./command1 | xargs -t -n1 command2
-n1
xác định các đối số tối đa được truyền cho mỗi cuộc gọi của command2
. Điều này sẽ thực thi:
command2 word1
command2 word2
command2 word3
Nếu bạn muốn tất cả như là đối số của một cuộc gọi command2
sử dụng đó:
./command1 | xargs -t command2
Điều đó gọi lệnh2 với 3 đối số:
command2 word1 word2 word3
Bạn muốn 'thay thế lệnh', nghĩa là: đầu ra nhúng của một lệnh trong anouther
command2 $(command1)
Theo truyền thống, điều này cũng có thể được thực hiện như:
command2 `command1`
nhưng cách sử dụng này thường không được khuyến khích, vì bạn không thể lồng chúng.
Ví dụ:
test.sh:
#!/bin/bash
echo a b c
test2.sh
#!/bin/bash
echo $2
SỬ DỤNG:
./test2.sh $(./test.sh)
b
ARG_MAX
thì sao? Tôi có một kịch bản trong đó tôi chuyển nội dung của tệp đến một hàm.