두 개의 서로 다른 시스템에 대해 두 개의 쿼리가 실행 중입니다. 그들은 각각 한 줄을 반환하며 한 줄로 출력하고 싶습니다.
쿼리 결과가 다음과 유사한 경우:
echo this that and more
echo other great news
다음과 같이 재정렬 및 서식을 지정할 수 있기를 원합니다.
echo other this that great news and more
한 줄의 출력을 여러 변수에 반영하는 방법을 알아낼 수 있다면 좋을 것입니다. 나는 이것을 작동시켰다:
echo this that and more | while IFS=" ", read a b c
do
echo a=$a b=$b c=$c
done
그러나 일단 while 루프를 종료하면 변수 ab와 c는 범위를 벗어나 더 이상 해당 값을 갖지 않습니다.
답변1
그들이 아니라범위를 벗어남, ksh
(적어도 AT&T 버전에서는) 두 번 호출 bash
되지 않습니다.read
두 번째 시도는 실패하고 루프에서 빠져나오게 됩니다.
그 순간에는 아무것도 읽히지 않았 으므로 read
a, b, c를 빈 문자열로 설정합니다.
그냥 해:
echo this that and more | IFS=" " read a b c
echo "a=$a b=$b c=$c"
답변2
a=$(echo this...)
b=$(echo other...)
echo -- "$a $b"