thoát awk với lệnh ssh từ xa và bash đã thoát


1

Xin chào.

ssh ufk@10.0.0.2  "bash -lc 'pm2 list | grep app | awk { print $3} '"

Tôi cần chạy lệnh tôi đã dán ở đây. vấn đề là tôi đã thoát được hai lần ... bash với "và pm2 với '. Làm thế nào tôi có thể thoát awk?

tôi biết rằng nó sẽ hoạt động nếu tôi thoát nó bằng awk '{print $ 3}' nhưng tất cả lệnh đã được thoát hai lần ... vậy .. tôi phải làm gì?

cập nhật

tôi đã tạo lệnh bash sau:

PM2_APP_ID=`$REMOTE_SRV_SSH_COMMAND "bash -lc \"pm2 list | grep app | grep -v 'pm2 show' | awk '{ print \\\$4 }'\""`;

Ở đây tôi nhận được tất cả các dòng có liên quan danh sách pm2, nó giống như awk không bao giờ được thực thi.


1
awkcó thể thực hiện hầu hết các trường hợp grepvà bạn không thực sự cần những việc đó được thực hiện từ xa, do đó ssh u@h "bash -lc 'pm2 list' " | awk '/app/{print $3}'cũng sẽ hoạt động
dave_thedom_085

cảm ơn @ dave_thndry_085, bạn đã giúp tôi giải quyết vấn đề
ufk

Câu trả lời:


1

Bạn không thể dấu gạch chéo ngược thoát khỏi dấu ngoặc đơn trong chuỗi được trích dẫn đơn, nhưng bạn có thể dấu gạch chéo ngược thoát dấu ngoặc kép bên trong chuỗi trích dẫn kép. Vì vậy, bạn có thể làm điều này:

ssh ufk@10.0.0.2  "bash -lc \"pm2 list | grep app | awk '{ print \\\$3 }'\""

Bạn cần phải thoát $ trong chương trình awk hai lần để tránh $ 3 bị mở rộng, đầu tiên là bằng vỏ cục bộ và sau đó là từ xa.


cố gắng kiểm tra nó .. tôi vẫn nhận được tất cả các dòng từ 'ứng dụng grep', có vẻ như awk hoàn toàn không được gọi
ufk

@ufk: Xin lỗi. Thay đổi nội dung câu trả lời cho bao gồm backslashes cần thiết
rici

cập nhật bài chính. vẫn không làm việc. cảm ơn vì sự giúp đỡ cho đến nay
ufk

1

cảm ơn @ dave_thndry_085 vì bình luận của bạn, điều đó đã giúp tôi giải quyết vấn đề.

Tôi đang sử dụng lệnh sau:

PM2_APP_ID=`$REMOTE_SRV_SSH_COMMAND "bash -lc 'pm2 list'" | grep app | grep -v 'pm2 show' | awk '{ print $4 }'`;

như bạn có thể thấy ở đây tôi sử dụng danh sách pm2 trên máy chủ loại bỏ và phần còn lại tôi đang làm cục bộ. không có rắc rối với việc thoát khỏi mọi thứ và nó hoạt động đúng.

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.