updateEnvironmentField() {
linewithoutquotes=`echo $LINE | tr -d '"'`
b()
}
$linewithoutquotes라는 변수를 updateEnvironmentField() 메서드에서 호출되는 b()라는 다른 메서드에 전달하려고 합니다. 위의 요구 사항을 달성하기 위해 쉘 스크립트를 사용하는 방법
답변1
b () {
arg=$1
# more code here
}
updateEnvironmentField () {
linewithoutquotes=`echo $LINE | tr -d '"'`
b "$linewithoutquotes"
}
여기서는 b
명령 대체 결과를 문자열로 호출합니다. 이 b
함수는 변수에서 문자열을 받습니다 arg
.
printf
대신 in 을 사용해야 하며 공백과 와일드카드 문자 등이 데이터를 엉망으로 만들지 않도록 확장을 적절하게 echo
인용해야 합니다 . 더 나은 성능을 위해 백틱도 다음과 같이 변경했습니다.$LINE
$(...)
updateEnvironmentField () {
linewithoutquotes=$( printf '%s\n' "$LINE" | tr -d '"' )
b "$linewithoutquotes"
}
bash
쉘을 사용하는 경우 ${variable//pattern}
매개변수 대체를 사용하여 큰따옴표를 제거할 수 있습니다.
updateEnvironmentField () {
linewithoutquotes=${LINE//\"}
b "$linewithoutquotes"
}
그렇지 않으면
updateEnvironmentField () {
b "${LINE//\"}"
}
관련된: