Câu hỏi Làm thế nào để vượt qua nội dung tập tin văn bản như là đối số để ứng dụng giao diện điều khiển? [bản sao]


Câu hỏi này đã có câu trả lời ở đây:

Dòng lệnh để chạy một ứng dụng giao diện điều khiển với đối số đầu vào được nạp từ tệp văn bản là gì?

text_file:
This is a simple text file with characters and other
symbols including tabs and new lines

Giao diện điều khiển sẽ nhận được

$./myapp "This is a simple text file with characters and other symbols including tabs and new lines"

6
2018-05-22 12:45


gốc




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


./myapp `cat text_file`

Hoặc là

./myapp $(cat text_file)

Hoặc sử dụng dấu ngoặc kép để chuyển tất cả văn bản dưới dạng một đối số

./myapp "$(cat text_file)"
./myapp "`cat text_file`"

10
2018-05-22 12:50



Điều này cũng hoạt động, hoặc có khoảng 10.000 cách khác. - coteyr
cảm ơn nhiều, hãy để tôi thử chúng. các nội dung sẽ được thông qua trong dấu ngoặc kép? để đối xử với họ như một đối số duy nhất vì có không gian trong tệp văn bản - Chesnokov Yuriy
Để truyền tất cả văn bản dưới dạng đối số duy nhất, bạn nên chạy ./myapp "$(cat text_file)". - Eric Carvalho
vâng, đó là trường hợp - Chesnokov Yuriy


Rất đơn giản, mèo nó.

cat file | some_script.sh

Có một cái nhìn đây để được trợ giúp thêm.


2
2018-05-22 12:50



Điều này sẽ chuyển hướng nội dung của tệp đến đầu vào chuẩn của some_script.sh, không phải là đối số dòng lệnh. - Eric Carvalho
Đúng nhưng câu hỏi là "với đối số đầu vào được nạp từ tệp văn bản" và nếu some_script.sh chiếm stdin thì "hiệu ứng" giống nhau mà không phải lo lắng về vấn đề độ dài đối số hoặc thoát. - coteyr