다음 테스트 사례를 사용하려고 합니다.
countAlpha=10;bob=alpha; echo $(echo $bob | sed 's/[a-z]/\U&/; s/^/\$count/') $countAlpha
다음과 같은 결과가 생성됩니다.
$countAlpha 10
내가 원하는 것은 파이프라인을 사용하여 다른 실행에서 사용할 수 있는 변수를 생성할 수 있도록 $countAlpha를 실행/확장하는 방법을 찾는 것입니다. 따라서 의도된 목표는 다음과 같습니다.
10 10
출력으로(배시 하나의 라이너가 실제로 올바른 값을 가지고 있는지 확인하기 위한 온전성 검사로 변수가 나중에 에코되지만 최종 결과에는 사용되지 않습니다. 그렇지 않으면 물어볼 필요가 없습니다). 불행하게도 이것은 항상 숫자가 아니며 bash 추가를 오프셋으로 사용하는 것은 여기서 $((i +x)) 도움이 되지 않습니다.
Bash에서 탈출하는 방법(예: 탈출 수준에 따라 "" 및 "'")이 여러 가지 있다는 것을 알고 있지만 그 반대를 수행하는 방법을 모르겠습니다. 미리 감사드립니다.
답변1
그래서 좀 더 고민한 끝에 답을 찾았고 다시 공유하고 싶었습니다.
countAlpha=10;bob=alpha; echo $(eval echo $(echo $bob | sed 's/[a-z]/\U&/; s/^/\$count/')) $countAlpha
10
핵심 부분은 을 사용하여 echo $(eval echo $(...))
변수를 해석하고 echo
all을 사용하여 변수를 인쇄하는 것입니다.
따라서 명확하게 말하면 이것을 실행하기 위해 사용하려는 경우 양식을 사용하여 $(eval echo $(...))
값을 인쇄합니다 echo $(eval echo $(...))
.
연관 배열에 대한 의견에 감사하지만 이 경우에는 위에 표시된 대로 직접 수행하는 것을 선호합니다.