Bourne 쉘에서 명령 대체

명령 대체를 사용하면 명령의 출력을 다른 명령에 대한 인수로서 캡처할 수 있습니다.

역인용 부호(``) 안에 명령행을 두면, 쉘은 먼저 명령을 실행한 후 역인용 부호를 포함한 전체 표현식을 출력으로 대체합니다. 이 기능은 종종 쉘 변수에 값을 제공할 때 사용됩니다. 예를 들어, 다음과 같습니다.
today=`date`
today 변수에 현재 날짜를 표시하는 문자열을 지정합니다. 다음과 같이 지정하면 현재 디렉토리의 파일 수가 files 변수에 저장됩니다.
files=`ls | wc -l`

표준 출력에 쓴 명령에 대해 명령 대체를 수행할 수 있습니다.

명령 대체를 내포하려면, 다음과 같이 각 내포된 역인용 부호 앞에 백슬래시(\)를 두십시오.
logmsg=`echo Your login directory is \`pwd\``
' read 특수 명령을 사용하여 셸 변수에 간접적으로 값을 지정할 수도 있습니다. 이 명령은 표준 입력(보통 키보드)으로 한 행을 얻어 그 행의 연속 단어를 이름 붙여진 변수에 지정합니다. 예를 들어 다음과 같습니다.
read first init last
다음 양식의 입력 행을 사용합니다.
J. Q. Public
사용자가 입력한 것과 같은 효과가 있습니다.
first=J. init=Q. last=Public

read 특수 명령은 마지막 변수에 남는 단어를 모두 지정합니다.