2013-02-04 28 views
18

Tôi có này đoạn mã ví dụ vỏ:args đèo cho kịch bản khi đi qua ống

echo /$1/ 

Vì vậy, tôi có thể gọi

$ . ./script 5 
# output: /5/ 

Tôi muốn ống kịch bản vào sh (ell), nhưng có thể Tôi vượt qua các arg quá?

cat script | sh 
# output: // 

Trả lời

25

Bạn có thể vượt qua đối số cho vỏ bằng cách sử dụng tùy chọn -s:

cat script | bash -s 5 
+2

Hoặc tốt nhất là 'bash -s 5 chepner

+1

@chepner: Nếu nó đã thực sự đọc từ một tập tin và không phải là một đường ống phức tạp hơn, sau đó nó sẽ là tốt hơn để làm '(ba) sh script 5'. – Matt

+0

không hoạt động đối với '-p' như (bắt đầu từ dấu gạch ngang) ' cat script | bash -s -a -b -c' xem câu trả lời http://stackoverflow.com/a/25563308/983232 –

Các vấn đề liên quan