잘 작동하는 다음 루프가 있습니다.
function uppercase_all_letters() {
for filename in *;
do echo "${filename^^}";
done;
}
"${filename^^}"
함수에 매개 변수로 어떻게 제공 합니까?
나는 평소 잘 시도했지만 ( SUBSTITUTION="${filename^^}"
) Bash는 다음 과 같이 보고합니다.
./test.sh: line 26: ${filename^^}: bad substitution
문자 그대로 수행하려면 아마도 eval에 의지해야 할 것입니다.
function subst_all_filenames() {
subst="$1"
for filename in *
do
eval 'echo ${filename'"$subst"'}'
done
}
subst_all_filenames "^^"
subst_all_filenames ",,"
subst_all_filenames ""
또는 알려진 대체 목록 만 지원합니다.
function subst_all_filenames() {
case "$1" in
^^) for filename in *; do echo "${filename^^}"; done ;;
,,) for filename in *; do echo "${filename,,}"; done ;;
*) printf "%s\n" * ;;
esac
}
때로는 그러한 도우미 기능도 애초에 필요하지도 않습니다. 쉘 스크립트의 모든 곳에서 그러한 루프를 갖는 것은 매우 정상입니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다