私は「実用的な」結果を得ています。私はそれをより効率的にし、プロセスを洗練したいと思っています。Bash:ループ出力から複数の配列を作成
#!/bin/bash
varPATH+=($(find /usr/share/doc/nano/ -maxdepth 1 -type f -readable))
for i in ${varPATH[@]} ; do
md5sum $i | sed 's/\.\///g'
done
...出力...
3d4b12cf0073d9aeebbf29e661fd5da5 AUTHORS
bf9b099648cb1200eb2fa4434c3c4547 BUGS.gz
c7dcba1d8e5a6e0a88ced9929b2630ae changelog.Debian.gz
d2b7963b6bcf44a590001e7c5b0ef8a8 changelog.gz
e70e5c9b500efd2a540c999dceb8f06c copyright
aa867595b2958564c4b32ed6ea591cd7 faq.html
99724dc74c18b19a5433ac3624258e56 NEWS.gz
私はmd5sumとARRAY1に追加することにしたいと:私は次のスクリプトを実行しています
:
は下に、私に従ってくださいarray2に追加するファイル名
両方の配列のシーケンスをループすると、それに応じてarray1 [22]とarray2 [22]が一致しますが、t o MD5ファイルを複数回。
私はこの結果を達成するための新しいスクリプトを作成しましたが、私は同じ結果を達成するために批判やより良い方法を得たいと考えています。この方法は「重い」か、必要以上に多くのプロセスを必要とするようです。
スクリプト:このメソッドは正気であることを示している
#!/bin/bash
varPATH+=($(find /usr/share/doc/nano/ -maxdepth 1 -type f))
unset ar1; unset ar2; unset ar3; unset ar4; unset ar5
bentest() {
for i in ${varPATH[@]} ; do
md5sum $i | sed 's/\.\///g'
done
}
ar1+=($(bentest))
count1=0
count2=1
while [ $count1 -lt ${#ar1[@]} ]; do
ar2+=($(echo ${ar1[$count1]}))
ar4+=($count1)
let count1+=2
done
while [ $count2 -lt ${#ar1[@]} ]; do
ar3+=($(echo ${ar1[$count2]}))
ar5+=($count2)
let count2+=2
done
count3=0
count4=0
count5=0
while [ $count3 -lt ${#ar1[@]} ]; do
echo "ar1[$count3] = ${ar1[$count3]}"
let count3+=1
done
while [ $count4 -lt ${#ar2[@]} ]; do
echo "ar2[$count4] = ${ar2[$count4]}"
let count4+=1
done
while [ $count5 -lt ${#ar3[@]} ]; do
echo "ar3[$count5] = ${ar3[$count5]}"
let count5+=1
done
...出力...
ar1[0] = aa867595b2958564c4b32ed6ea591cd7
ar1[1] = /usr/share/doc/nano/faq.html
ar1[2] = e70e5c9b500efd2a540c999dceb8f06c
ar1[3] = /usr/share/doc/nano/copyright
ar1[4] = d2b7963b6bcf44a590001e7c5b0ef8a8
ar1[5] = /usr/share/doc/nano/changelog.gz
ar1[6] = 3d4b12cf0073d9aeebbf29e661fd5da5
ar1[7] = /usr/share/doc/nano/AUTHORS
ar1[8] = 9319db0df664b9fcfe6937b78666c607
ar1[9] = /usr/share/doc/nano/UPGRADE.gz
ar1[10] = 99724dc74c18b19a5433ac3624258e56
ar1[11] = /usr/share/doc/nano/NEWS.gz
ar1[12] = bf9b099648cb1200eb2fa4434c3c4547
ar1[13] = /usr/share/doc/nano/BUGS.gz
ar1[14] = 54cdb409a70b74d1a8b41a731e0d9ef5
ar1[15] = /usr/share/doc/nano/THANKS
ar1[16] = c7dcba1d8e5a6e0a88ced9929b2630ae
ar1[17] = /usr/share/doc/nano/changelog.Debian.gz
ar1[18] = 2864bac6c4e3e9264a8a68509e511e81
ar1[19] = /usr/share/doc/nano/TODO.gz
ar1[20] = a4ee8fd431a8db6cc84a7fb6c29931b9
ar1[21] = /usr/share/doc/nano/README
ar2[0] = aa867595b2958564c4b32ed6ea591cd7
ar2[1] = e70e5c9b500efd2a540c999dceb8f06c
ar2[2] = d2b7963b6bcf44a590001e7c5b0ef8a8
ar2[3] = 3d4b12cf0073d9aeebbf29e661fd5da5
ar2[4] = 9319db0df664b9fcfe6937b78666c607
ar2[5] = 99724dc74c18b19a5433ac3624258e56
ar2[6] = bf9b099648cb1200eb2fa4434c3c4547
ar2[7] = 54cdb409a70b74d1a8b41a731e0d9ef5
ar2[8] = c7dcba1d8e5a6e0a88ced9929b2630ae
ar2[9] = 2864bac6c4e3e9264a8a68509e511e81
ar2[10] = a4ee8fd431a8db6cc84a7fb6c29931b9
ar3[0] = /usr/share/doc/nano/faq.html
ar3[1] = /usr/share/doc/nano/copyright
ar3[2] = /usr/share/doc/nano/changelog.gz
ar3[3] = /usr/share/doc/nano/AUTHORS
ar3[4] = /usr/share/doc/nano/UPGRADE.gz
ar3[5] = /usr/share/doc/nano/NEWS.gz
ar3[6] = /usr/share/doc/nano/BUGS.gz
ar3[7] = /usr/share/doc/nano/THANKS
ar3[8] = /usr/share/doc/nano/changelog.Debian.gz
ar3[9] = /usr/share/doc/nano/TODO.gz
ar3[10] = /usr/share/doc/nano/README
最終的な効果は何ですか? – Kusalananda
私は、Apacheのファイル記述を自動的に生成するためにディレクトリに対して実行できるスクリプトを構築しています。 – spezticle