본문 바로가기
리눅스 (Linux)

명령어 치환 (Command Substitution)

by 멸치김밥 2021. 12. 19.

역따옴표(backtick) ``로 명령어를 감싸서 변수에 넣어 활용할 수 있다.

-----------------kimchi.sh----------------
#!/bin/bash

kimchi=`basename $0`                  basename은 해당하는 파일의 파일명만 반환해줌
echo "김치 변수 = $kimchi"
-------------------------------------------

$ ./kimchi.sh
김치 변수 = kimchi.sh

위처럼 변수안에 basename 명령어를 실행한 결과를 넣어 echo 명령어 안에서 이용할 수 있다.

 

또 다른 예시.

#include <stdio.h>
#include <iostream>

using namespace std;

int main()
{
    cout << "Hello, world." << endl;
    return 0;
}

위처럼 hello.cpp 파일을 만들고

$ g++ -o hellohello hello.cpp

g++ 패키지를 사용하여 hello.cpp 파일을 변환하여 다른이름으로 저장하기 위해 -o 옵션과 hellohello 파일명을 적고 실행시키면 hellohello 파일이 생성된다.

g++은 c++언어를 컴퓨터가 읽기 좋은 형태로 바꾸기 위해 사용한다고 한다.

 

---------------------hi.sh 파일 작성----------
#!/bin/bash
hi=`./hellohello`
echo $hi
----------------------------------------------
$ ./hi.sh
Hello, world.

그리고 hi.sh를 실행해주면

변수 hi에 담긴 (hello.cpp에서 hellohello파일로 변환된)hellohello파일을 읽어들여 

Hello, world.

란 결과가 출력된다

'리눅스 (Linux)' 카테고리의 다른 글

배열  (0) 2021.12.20
리다이렉션  (0) 2021.12.19
특수 변수  (0) 2021.12.19
특수 권한  (0) 2021.12.19
리눅스 - shell script 변수  (0) 2021.12.16

댓글