Làm thế nào tôi có thể nhận được các đối số dòng lệnh thô trong một ứng dụng Node.js, cho ví dụ lệnh này:nhận đối số dòng lệnh thô trong Node.js
node forwardwithssh.js echo "hello arguments"
process.argv
sẽ [ "node", "/path/to/forwardwith.js", "echo", "hello arguments" ]
Và không có cách nào để xây dựng lại echo "hello arguments"
gốc từ đó (ví dụ: join(" "
sẽ không đặt lại dấu ngoặc kép). Tôi muốn toàn bộ chuỗi gốc ban đầu sau tên tập lệnh.
những gì tôi muốn có thể dễ dàng có được trong các tập lệnh bash với "$*"
, có cách nào tương đương để nhận điều đó trong node.js không?
Lưu ý: mục đích đặc biệt là để nhận được một lệnh được thực hiện ở một nơi khác
Mô-đun này sẽ có thể thực hiện những gì bạn muốn: https://www.npmjs.org/package/minimist –
Không có cách nào để cho biết đối số ban đầu đã được chỉ định là '" đối số chào "", ''hay không hello arguments'' hoặc 'hello \ argument'. Đó là tất cả như nhau trong bash. Bạn có muốn luôn luôn giả định rằng một arg với một không gian ban đầu được trích dẫn với dấu ngoặc kép? Thật dễ dàng để thấy rằng không gian phải được thoát bằng cách nào đó, bởi vì bạn nhận được một arg thay vì hai cho "chào đối số". – Paulpro
Bạn có thể báo giá tất cả args 'process.argv.map (hàm (arg) {return '"' + arg + '"';});'. Nó sẽ cung cấp cho bạn: '" node "" forwardwithssh.js "" echo "" hello arguments "', cũng giống như bash như lệnh ban đầu của bạn. – Paulpro