누군가가 db2 명령의 출력을 나중에 스크립트에 사용할 변수에 적용하는 데 도움이되기를 바랍니다. 내가 파이프를 사용하여 다른 방법을 시도한 echo $HowMany
DB2 출력을 bash 스크립트를 통해
을처럼
지금까지 내가에서 오전 ...
db2 "connect to <database> user <username> using <password>"
while read HowMany ;
do
Counter=$HowMany
echo $HowMany
done < <(db2 -x "SELECT COUNT(1) FROM SYSCAT.COLUMNS WHERE TABNAME = 'TableA' AND TABSCHEMA='SchemaA' AND GENERATED = 'A'")
while 루프의 $Counter
외부 참조하려고, 그것은 SQL1024N A database connection does not exist. SQLSTATE=08003
을 반환 $HowMany
은 올바른 값을 표시하지만 서브 쉘이므로 나중에 손실됩니다.
임시 파일을 사용하지 않고 가능한 경우 제거하십시오. 스크립트가 언제든지 중단되면 파일을 남기지 않는 것이 좋습니다.
감사합니다. Ian. 위의 솔루션은 내가 시도한 옵션이지만 루프 외부에서 참조 될 때 변수는 null 값을 반환합니다. 나는 이것을 피하기 위해 파일을 사용해야한다고 생각하기 시작했다. –
do 루프를 빠져 나간 후에'$ Counter '의 값이 설정되지 않는다고 말하는가? 또는'HowMany'? –
$ 카운터는 null 값을 반환합니다. 음, 모두 루프 뒤에서 수행합니다. –