کد:behzad@linux-jchd:~/bash> ./1 1 10 1 20
./1: line 14: syntax error near unexpected token `done'
./1: line 14: `done'
behzad@linux-jchd:~/bash> ls
1 2 FILE1 FILEn FILEn (copy)
behzad@linux-jchd:~/bash>
Printable View
کد:behzad@linux-jchd:~/bash> ./1 1 10 1 20
./1: line 14: syntax error near unexpected token `done'
./1: line 14: `done'
behzad@linux-jchd:~/bash> ls
1 2 FILE1 FILEn FILEn (copy)
behzad@linux-jchd:~/bash>
کد:#!/bin/bash
n=$1
m=$2
F0=$3
Fn=$4
while ((F0<Fn))
do
while ((n<m))
do
URL=$(cat -n FILE$F0 | grep ' '$n) ; ${URL:7}
terminal -x bash -c "(aria2c $URL --on-download-complete=cat -n r2 | grep ' '$n | sed -i '$n d' r2 >> r2)"
n=$((n+1))
done
F0=$((F0+1))
done
exit 0
ممنون
چند تا مشکل وجود داره یکی اینکه در اسکریپت قبلی که فایل ها رو با موفقیت دانلد کرد یک فایل با پسوند متالینک هم برای هر فایل ساخت اینبار هم همون اتفاق افتاد
دوم اینکه یک فایل رو دانلد میکنه بعد میره سراغ بعدی
سوم اینکه اینبار فقط یک فایل رو دانلد کرد و بقیه رو ارور بدون ربطی داد!
چهارم اینکه خط مربوط به لینک به r2 نرفت و از فایل متنی هم پاک نشد
یک نکته برای ساده تر کردن اسکریپت: همین که بشه تعداد دانلدهای همزمان رو مشخص کرد کافیه و نیازی به چند فایل برای url ها نیستکد:behzad@behzad-desktop:~/bash$ ./1 1 10 1 20
./1: line 10: http://download.opensuse.org/repositories/home:/anubisg1/openSUSE_Factory/i586/vtk-python-debuginfo-5.4.2-1.63.i586.rpm: No such file or directory
./1: line 10: http://download.opensuse.org/repositories/home:/anubisg1/openSUSE_Factory/i586/vtk-qt-debuginfo-5.4.2-1.63.i586.rpm: No such file or directory
./1: line 10: http://download.opensuse.org/repositories/home:/anubisg1/openSUSE_Factory/i586/libqwt5-devel-doc-5.2.0-4.5.i586.rpm: No such file or directory
./1: line 10: http://download.opensuse.org/repositories/home:/anubisg1/openSUSE_Factory/i586/yasm-devel-0.8.0-2.7.i586.rpm: No such file or directory
./1: line 10: http://download.opensuse.org/repositories/home:/anubisg1/openSUSE_Factory/i586/protobuf-2.3.1-2.2.i586.rpm: No such file or directory
./1: line 10: http://download.opensuse.org/repositories/home:/anubisg1/openSUSE_Factory/i586/libgtkextra-x11-2_0-1-debuginfo-2.1.1-12.36.i586.rpm: No such file or directory
./1: line 10: http://download.opensuse.org/repositories/home:/anubisg1/openSUSE_Factory/i586/qdbm-1.8.77-21.52.i586.rpm: No such file or directory
./1: line 10: http://download.opensuse.org/repositories/home:/anubisg1/openSUSE_Factory/i586/biopython-1.48-5.30.i586.rpm: No such file or directory
./1: line 10: http://download.opensuse.org/repositories/home:/anubisg1/openSUSE_Factory/i586/CreativeXFi-kmp-desktop-debuginfo-1.00_2.6.30.2_1-8.48.i586.rpm: No such file or directory
behzad@behzad-desktop:~/bash$ ls
1 1~ 2~ FILE1 FILEn~ FILEn (copy) r2 vtk-python-debuginfo-5.4.2-1.63.i586.rpm vtk-python-debuginfo-5.4.2-1.63.i586.rpm.metalink
behzad@behzad-desktop:~/bash$
اگر یکم در مورد مفهوم ((F0<Fn)) و ((n<m)) که همراه while اومده توضیح بدید ممنون میشم
اون قاعدتاً باید بعد از اتمام دانلود خودبهخود حذف بشه. اگر نمیشه نمیدونم!نقل قول:
چند تا مشکل وجود داره یکی اینکه در اسکریپت قبلی که فایل ها رو با موفقیت دانلد کرد یک فایل با پسوند متالینک هم برای هر فایل ساخت اینبار هم همون اتفاق افتاد
مگر باید کار دیگری هم انجام بده؟!نقل قول:
دوم اینکه یک فایل رو دانلد میکنه بعد میره سراغ بعدی
خوب ارور چی بود؟نقل قول:
سوم اینکه اینبار فقط یک فایل رو دانلد کرد و بقیه رو ارور بدون ربطی داد!
اسم r2 رو باید بهصورت FILEn درمیآوردی.نقل قول:
چهارم اینکه خط مربوط به لینک به r2 نرفت و از فایل متنی هم پاک نشد
متوجه نشدمنقل قول:
همین که بشه تعداد دانلدهای همزمان رو مشخص کرد کافیه
مشخصه یعنی تا وقتی مقدار n از m کمتره حلقه برقراره (با این توضیح که در هر دور حلقه به مقدار n یکی اضافه میشه).نقل قول:
اگر یکم در مورد مفهوم ((F0<Fn)) و ((n<m)) که همراه while اومده توضیح بدید ممنون میشم