이
function replaceVars {
local V IFS=
while read -r LINE; do
for V; do
LINE=${LINE//"$V"/"${!V}"}
done
echo "$LINE"
done
}
같은 함수를 작성하고이 같은 스트림에서 호출 할 수 있습니다 : 정말 표준 출력하지만, 상호 작용하지 않는
cat file | replaceVars FOO BAR BAZ | process
내가 less
이후 less
로 cat
교체 터미널 자체. 당신은뿐만 아니라이 대신 할 수있는 :
replaceVars FOO BAR BAZ < file | process
당신이 배열에서 그 변수 이름을 저장하려면이처럼 할 수 있다면 : 그런데
VARS=(FOO BAR BAZ)
replaceVars "${VARS[@]}" < file | process
는 배쉬로 실행해야합니다 . 전체 스크립트 예제는 다음과 같습니다.
#!/bin/bash
VARS=(FOO BAR BAZ)
function replaceVars {
local V IFS=
while read -r LINE; do
for V; do
LINE=${LINE//"$V"/"${!V}"}
done
done
echo "$LINE"
}
replaceVars "${VARS[@]}" < file | process