Câu hỏi Có cách nào để vượt qua đối số thông qua đường ống trên bash?


Có cách nào để vượt qua đối số thông qua đường ống trên bash?

cái gì đó như:

echo value1 value2 | mkdir -p ./$1/$2

Dòng trên sẽ tạo các thư mục ./value1/value2

Nếu điều này là không thể, tôi sẽ chấp nhận các đề xuất.

Bất kỳ trợ giúp được đánh giá cao.


1
2017-12-11 17:06


gốc




Các câu trả lời:


Các công trình sau đây trong Unbuntu:

echo -e value1\\nvalue2|echo mkdir -p ./`line`/`line`

Tôi không thể đảm bảo rằng tất cả bash việc triển khai sẽ đọc các dòng theo thứ tự từ trái sang phải.

Ngoài ra:

echo value1 value2|( read p1 p2; echo mkdir -p ./$p1/$p2 )

Điều này sẽ làm việc với tất cả bash triển khai, nhưng sẽ cần phải xây dựng nếu một trong hai giá trị chứa khoảng trống.

(Tôi đã sử dụng echo mkdir để hiển thị hiệu ứng.)


2
2017-12-11 17:24



Lựa chọn thứ hai là hoàn hảo cho những gì tôi đang làm, cảm ơn! - guest9586


Làm thế nào về

echo v1 v2 | awk '{print "./"$1"/"$2}' | xargs mkdir -p

1
2017-12-11 17:16