컬에 변수를 포함해야 합니다
for fname in "assets/*.drx"; do
echo $fname
curl -F file=@"$fname" "http://someurl.com/"
echo $fnamename
done
결과:
assets/5baa5caa414f1d7786e86d03_1545903119.11.drx
curl: (26) couldn't open file "assets/*.drx"
assets/5baa5caa414f1d7786e86d03_1545903119.11.drx
컬은 glob 표현식을 사용하는 것처럼 보이지만 echo는 실제 파일 이름을 사용합니다. 컬은 왜 이렇게 행동합니까? echo가 실제 변수를 보는 이유와 컬에서 파일 이름을 사용하는 방법은 무엇입니까?
답변1
와일드카드를 인용하여 *
쉘이 확장되지 않도록 했습니다.
for fname in assets/*.drx; do
printf '%s\n' "$fname"
curl -F file=@"$fname" "http://someurl.com/"
done
변수 fname
에 값이 할당됩니다.단어텍스트 assets/*.drx
. 당신이 그것을 사용할 때인용되지 않음에서는 echo
쉘이 이를 충실하게 확장합니다.