Мне нужно создать программу, которая принимает в качестве аргументов несколько файлов, содержащих строки, подобные этой: num1:num2
.
Мне нужно хранить левый столбец чисел в одном массиве и правый столбец итогда сделай с ними что-нибудь. Мне нужна помощь по первой части.
Количество файлов, передаваемых в качестве аргументов, является переменным. Также я не знаю ни названия файлов, ни количества строк. Я просто знаю, что я получу по крайней мере 1 файл с 1 строкой.
Я пытаюсь сделать цикл для каждого файла аргумента, а затем прочитать каждую строку файла, разбить каждую строку с некоторыми строковыми манипуляциями и затем сохранитьрезультаты в 2 массивах. Однако мне не удалось. Я знаю, что у меня есть и другие виды ошибок, но я могу их исправить.
Когда я пытаюсь запустить программу, используя:
sh <my_program_name>.sh <argument1_filename>
Я просто не получаю результатов на терминале, пустоЭкран как будто он вычисляет что-то в бесконечном цикле.
#!/bin/bash
length=0
b=1
c=1
d=0
args=$#
j=0
temp=0
temp2=0
temp3=0
temp4=0
for temp in "$@"
do
while read line
do
stringtmp=line
tmp=`expr index "$stringtmp" :`
let tmp=tmp-1
stringtmp2='expr substr $stringtmp $1 $tmp'
lengh=`expr index "$stringtmp" \n`
let tmp=tmp+2
let lengh=lengh-1
stringtmp3='expr substr $stringtmp $tmp $lengh'
array1[$length]=stringtmp2
array2[$length]=stringtmp3
let length=length+1
done
...
done