Để tôi mô tả tình hình đầu tiên của mình, tôi đang làm việc trên nền tảng Linux và có một tập hợp các tệp .bmp
thêm một số vào số ảnh từ filename0022.bmp
lên đến filename0680.bmp
. Vì vậy, tổng cộng 658 hình ảnh. Tôi muốn có thể chạy từng bức ảnh này thông qua một tập tin .exe hoạt động trên bức ảnh, sau đó khởi động tập tin vào một tập tin được chỉ định bởi người sử dụng, nó cũng có một số đối số ngưỡng: thấp hơn, trên. Vì vậy, cuộc gọi thông thường cho thực thi là:Làm thế nào để lặp lại một lệnh thực thi trong terminal trong Linux?
./filter inputfile outputfile lower upper
Có cách nào để tôi có thể lặp lại cuộc gọi này trên tất cả các tệp chỉ từ thiết bị đầu cuối hoặc bằng cách tạo một số loại tập lệnh bash? Vấn đề của tôi tương tự như sau: Execute a command over multiple files with a batch file nhưng lần này tôi đang làm việc trong một thiết bị đầu cuối dòng lệnh Linux.
đây là những gì tôi đã thử và nó in một loạt những thứ liên quan đến màn hình của tôi nhưng không thực sự tạo ra bất kỳ tập tin ... #!/bin/bash cho ((a = 022; a <= 680; a ++)) do printf "./filter fetus-00-2.3.5um__voi0% 04d.bmp fetus_threshold_% 04d 90 240" $ a hoàn thành trong đó 90 và 240 là các đối số dưới và trên tôi đã đề cập trước đó. Tôi đã không thực hiện một kịch bản bash vì vậy tôi chỉ sử dụng emacs để tạo ra một tập tin mà tôi đã gõ các dòng mã trước đó. Sau đó tôi đã lưu tập tin emacs chỉ đơn giản là thử nghiệm. không có gì đằng sau nó vì đó là những gì tôi thấy một vài ví dụ làm trực tuyến. Bạn có thêm mẹo nào không? –
thử làm cho nó thành một tập tin .sh (với bổ sung mới tôi đã thực hiện ở trên) và sau đó chạy các tập tin bằng cách gõ [[bash myfile.sh]] trong cùng một thư mục – scottyaz
Vâng, tin tốt ... ít nhất là lặp lại điều này thời gian xung quanh và thậm chí nó hoạt động trên hình ảnh đầu tiên, sau đó tôi nhận được một số lỗi đến từ phần mềm mà tệp thực thi đang sử dụng. Điều tôi không hiểu là nó đang cố gắng để bắt đầu tại inputfile0000 và chúng tôi nói với nó để bắt đầu với inputfile0022.bmp. Hình ảnh đầu ra duy nhất tôi nhận được là outputfile0000.bmp. Đây là tệp bash tôi đã lưu dưới dạng ngưỡng.sh: #!/bin/bash cho ((a = 022; a <= 680; a ++)) do printf "./filter6 fetus-00-2_3.5um__rec_voi% 04d.bmp fetus_threshold_% 04d.bmp 90 240" $ a | "sh" done –