![배열에 나열된 모든 파일을 어떻게 다운로드합니까?](https://rvso.com/image/76402/%EB%B0%B0%EC%97%B4%EC%97%90%20%EB%82%98%EC%97%B4%EB%90%9C%20%EB%AA%A8%EB%93%A0%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%EB%8B%A4%EC%9A%B4%EB%A1%9C%EB%93%9C%ED%95%A9%EB%8B%88%EA%B9%8C%3F.png)
모든 파일을 다운로드하고 싶습니다.이 GitHub 디렉토리에게 /usr/share/enlightenment/data/config
. 이 스크립트가 있습니다.
L=('e.cfg' 'e_randr.cfg' 'exehist.cfg' 'module.battery.cfg' 'module.clock.cfg' 'module.conf.cfg' 'module.everything-apps.cfg' 'module.everything-files.cfg' 'module.everything.cfg' 'module.gadman.cfg' 'module.ibar.cfg' 'module.notification.cfg' 'module.pager.cfg' 'module.syscon.cfg' 'module.tasks.cfg')
pushd /usr/share/enlightenment/data/config
for i in $L
do
sudo wget -c $JEF/$i #$JEF is defined in my ~/.bashrc script
done
popd
하지만 다운로드만 하면 e.cfg
끝입니다.
답변1
bash
또는 에서는 ksh
다음을 사용하여 배열의 모든 요소를 반복해야 합니다.
for i in "${L[@]}"; do wget ....; done
${L[@]}
배열의 모든 요소로 확장되고 L
이를 for
반복하는 데 사용됩니다.
$L
is bash
또는 을 사용하면 귀하의 경우와 ksh
같이 동작하며 ${L[0]}
배열의 첫 번째 요소만 가져옵니다.
답변2
나는 그것을 보면서 스스로 답을 알아냈다.배열 변수Bash 초보자 가이드에서.
스크립트는 다음과 같아야 합니다.
L=('e.cfg' 'e_randr.cfg' 'exehist.cfg' 'module.battery.cfg' 'module.clock.cfg' 'module.conf.cfg' 'module.everything-apps.cfg' 'module.everything-files.cfg' 'module.everything.cfg' 'module.gadman.cfg' 'module.ibar.cfg' 'module.notification.cfg' 'module.pager.cfg' 'module.syscon.cfg' 'module.tasks.cfg')
pushd /usr/share/enlightenment/data/config
for i in ${L[*]}
do
sudo wget -c $JEF/$i
done
popd
답변3
이건 어때? 따옴표, 괄호, 대괄호 및 기타 구문이 적습니다!:
L='e.cfg e_randr.cfg exehist.cfg etc'
for i in $L
do
echo wget -c "$JEF/$i" #$JEF is defined in my ~/.bashrc script
done
이는 가장 오래되고 가장 일반적인 방법입니다. 더 많은 사람들이 이것을 이해합니다. 배열은 제가 사용해본 적이 없는 확장입니다.