쿼리를 수행하고 저장하려고 합니다.모든 행ksh(어쩌면 bash)에 배열 요소가 생성됩니다. 그래요:
result=($($PATH_UTI/querysh "
set heading off
set feedback off
SELECT columnA,columnb FROM user.comunication;"))
나 그거있어:
row1 = HOUSE CAR
row2 = DOC CAT
echo "${result[1]}" and it gives me HOUSE
하지만 나는 다음을 얻고 싶습니다:
echo "${result[1]}" gives: "HOUSE CAR"
답변1
예를 들어 또는 다음이 포함된 문자열 문제를 방지하려면 기본 구분 기호를 변경하여 IFS
줄 끝 문자로 데이터를 분할하고 globbing을 비활성화 해야 합니다 .set -f
*
?
$ IFS=$'\n'
$ set -f
$ result=( $(printf "HOUSE CAR\nDOC CAT") )
$ echo "${result[0]}"
HOUSE CAR
$ echo "${result[1]}"
DOC CAT
다시 변경하지 않는 한 두 변경 사항 모두 스크립트의 나머지 부분에 적용됩니다.
답변2
Bash에서는 다음을 사용할 수 있습니다 mapfile
(실제 결과로 테스트해야 함).
# note that the parenthesis are not needed
$ result="HOUSE CAR
DOC CAT"
$ mapfile -t arr < <(printf "%s" "$result")
$ echo "${arr[0]}" # or 1 if the first row is empty
HOUSE CAR