Tôi cần viết một kịch bản khởi động chương trình của mình bằng các đối số khác nhau, nhưng tôi mới biết về Bash. Tôi bắt đầu chương trình của mình với:
./MyProgram.exe Data/data1.txt [Logs/data1_Log.txt]
.
Đây là mã giả cho những gì tôi muốn làm:
for each filename in /Data do
for int i = 0, i = 3, i++
./MyProgram.exe Data/filename.txt Logs/filename_Log{i}.txt
end for
end for
Vì vậy, tôi thực sự bối rối làm thế nào để tạo đối số thứ hai từ đối số thứ nhất, vì vậy nó trông giống như dataABCD_Log1.txt và bắt đầu chương trình của tôi.
basename -s
là một phần mở rộng không chuẩn - tôi sẽ chỉnh sửa câu trả lời của mình để sử dụng cú pháp chuẩn.