가능한 중복 :
Printf example in bash does not create a newlinebash 배열이 개행을 무시하는 이유는 무엇입니까?
내가 샘플 스크립트 하나 개의 배열로 세 가지 기능을 집계하는 "array-test.sh"이 : 그러나
[[email protected] ~]$ cat array-test.sh
#!/usr/bin/env bash
function1() {
printf '%s\n\n\n' "cat"
}
function2() {
printf '%s\n\n\n' "dog"
}
function3() {
printf '%s\n\n\n' "mouse"
}
for function in\
function1\
function2\
function3; do
array[$((index++))]=$($function)
done
echo "${array[@]}"
[[email protected] ~]$ ./array-test.sh
cat dog mouse
[[email protected] ~]$
을, 줄 바꿈 문자가 없습니다. 어떤 행동을합니까?
나는'$()'이 역 인용 연산자처럼 행동한다고 믿는다. –
왜이 복잡한 코드를 게시 했습니까? 'echo "$ (function1)"' –
@ KarolyHorvath로 문제를 재현 할 수 있습니다. 문제의 핵심은 대개 가장 어려운 문제이기 때문입니다. 사실 당신이 그것을 즉각적으로 보았다는 사실은 당신이 OP보다 bash의 quirks에 더 익숙하다는 것을 증명합니다. 의심스러운 의견 이라기보다는 답을 주면서 왜 우월감을 과시합니까? –