Mô phỏng quá trình chạy của một trò chơi cài đặt trên mạng - một tiện ích giả lập hay chạy mô phỏng hay


13

Có một cách chung để chạy tập lệnh bash và xem các lệnh có kết quả, nhưng không thực sự chạy các lệnh - tức là "chạy khô" / giả lập các loại?

Tôi có một tập lệnh cài đặt cơ sở dữ liệu (thực sự là "thực hiện cài đặt" sau khi chạy ./mình và thực hiện) mà tôi muốn chạy, nhưng nó cài đặt tất cả các loại mà tôi không muốn.

Vì vậy, tôi muốn có một cách để xem chính xác những gì nó sẽ làm trước khi tôi thực sự chạy nó - thậm chí có thể chạy các lệnh bằng tay thay thế.

Có tiện ích nào có thể thực hiện một nhiệm vụ như vậy (hoặc bất cứ điều gì liên quan / tương tự) không?


Tôi nghĩ rằng 'set -n' sẽ làm một cái gì đó như thế. Hãy thử thêm -x là tốt.
Jeff Schaller

Làm cách nào để tôi "cài đặt" thành set -n?
Vérace

bash -n make install, nhưng từ man bash: "Một vỏ tương tác có thể bỏ qua tùy chọn này."
pfnuesel

Không có tùy chọn khô trong bash. Xem thêm tại đây stackoverflow.com/questions/19115156/
Mạnh

Câu trả lời:


16

GNU make có một tùy chọn để chạy khô:

'-N'

'- in-in'

'- chạy thử'

'--recon'

"Không ra đâu". Nguyên nhân khiến việc in các công thức cần thiết để thực hiện các mục tiêu được cập nhật, nhưng không thực sự thực hiện chúng. Lưu ý rằng một số công thức nấu ăn vẫn được thực thi, ngay cả với cờ này (xem Cách biến MAKE hoạt động). Ngoài ra, bất kỳ công thức nấu ăn cần thiết để cập nhật bao gồm makefiles vẫn được thực hiện.

Vì vậy, đối với tình huống của bạn, chỉ cần chạy make -n installđể xem các lệnh makesẽ thực thi.


5

Bất kỳ phiên bản nào makecũng có -ntùy chọn (xem mô tả POSIXmake ), nhưng shell không có tùy chọn tương ứng (xem ví dụ Hiển thị lệnh mà không thực hiện chúng ).

Để làm trầm trọng thêm tình hình, nếu bạn tình cờ sử dụng chế độ tự động, nó sẽ dán các đoạn kịch bản lớn (mà các nhà phát triển của nó gọi là "quy tắc đệ quy") đánh bại khả năng của bất kỳ ai sử dụng "make -n" và xem điều gì sẽ xảy ra

Đọc thêm:

  • 27.11 Quy tắc gỡ lỗi

    make -ncó thể giúp hiển thị những gì sẽ được thực hiện mà không thực sự làm nó. Tuy nhiên, lưu ý rằng điều này vẫn sẽ thực thi các lệnh có tiền tố ‘+’và, khi sử dụng GNU make, các lệnh có chứa các chuỗi ‘$(MAKE)’hoặc ‘${MAKE}’(xem Thay vì thực thi trong Hướng dẫn tạo GNU). Thông thường, điều này hữu ích để hiển thị các quy tắc đệ quy sẽ làm gì, nhưng điều đó có nghĩa là, trong các quy tắc của riêng bạn, bạn không nên trộn đệ quy đó với các hành động thay đổi bất kỳ tệp nào. Hơn nữa, lưu ý rằng GNU make sẽ cập nhật các điều kiện tiên quyết cho chính tệp Makefile ngay cả với -n (xem phần Làm lại Makefile trong Hướng dẫn tạo GNU).

  • Re: Nhiều vấn đề hơn với 'make -n' trong các quy tắc được tạo tự động.
    chạm vào một số cạm bẫy được liệt kê trong 27.9 Công cụ xử lý tạo ra nhiều đầu ra

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.