명령 출력을 스크립트의 변수로 어떻게 사용할 수 있습니까?

명령 출력을 스크립트의 변수로 어떻게 사용할 수 있습니까?

orauser다음 하드코딩된 변수( 및 orasid) 로 사용하기 위해 서버에서 실행 중인 프로세스를 보려면 다음 스크립트가 필요합니다.

#!/bin/bash
orauser="oraqa1"
orasid="ERPQA1"
source /home/$orauser/$orasid.env
su - ${orauser}   << BOF 2>&1
export ORACLE_SID=$orasid
sqlplus /nolog << EOF 2>&1
connect / as sysdba
alter database begin backup;
exit;
EOF
BOF

이를 수행하는 가장 좋은 방법은 무엇입니까?

다음을 실행하여 필요한 실제 출력을 얻을 수 있습니다.ps

시작 부분에는 ( )가 표시되고 orauser끝 부분에는 ( )가 표시됩니다(마지막 밑줄 뒤).oradevorasidERPDEV

예를 들어

:~$ps -ef |grep pmon
oradev   22733     1  0 03:36 ?        00:00:05 ora_pmon_ERPDEV

실패하면 스크립트가 실행되지 않습니다. 이는 해당 서버에 데이터베이스가 없을 수 있다는 의미이므로 좋습니다.

가장 깨끗하고 간단한 방법은 무엇입니까?

답변1

이와 같이:

$ output="$(ps -ef |grep pmon)"

의 출력은 ps -ef |grep pmon이름이 지정된 변수에 저장됩니다 $output.

관련 정보