Những gì tôi muốn làm là một cái gì đó như sau:Làm cách nào để bạn sử dụng biến tập lệnh shell làm đối số cho sed?
#!/bin/sh
EMAIL="-e 's/SOMETHING//g'"
somecommand | sed "$EMAIL"
Nhưng tôi nhận được như sau:
sed: -e expression #1, char 2: unknown command: `''
Tôi đã thử nhiều biến thể. Tôi biết nó chỉ là vấn đề nhận được chuỗi trích dẫn đúng. Lý do tôi muốn làm điều này là để phá vỡ một lệnh sed dài lên cho dễ đọc. Tôi có nên sử dụng một tập lệnh sed (thay vì tùy chọn -f) không?
UPDATE:
kịch bản thực tế của tôi là một chút phức tạp hơn:
#!/bin/sh
EMAIL="-e s/SOME THING//g -e s/SOME THING ELSE//g ..."
somecommand | sed "$EMAIL"
Sau khi loại bỏ các dấu ngoặc kép duy nhất tôi nhận được:
sed: -e expression #1, char 18: unknown option to `s'
Đó là vì bạn đang làm điều gì đó hoàn toàn khác. – Swoogan