32

JH공원·2025년 3월 17일

즉석노트

목록 보기
32/32

스승님의 조언 - 컴퓨터 관련일을 할때 가장 중요한것은 컴퓨터가 하는말을 잘 듣는것이다.
어떠한 기능이 작동하지 않는다면 대게 화면상에 적부 이유가 있으니 분석하고 읽어보는게 중요하다.

sh 스크립트를 만들때 변수를 지정하는데 이때 변수를 따로 지정하지 않은 경우

$1 첫번째 인자
$2 두번째 인자

이러한 속성을 가진다.


#!/bin/bash

echo "You said $1"

라는 내용을 가진 miki.sh 이라는 파일이 있고 ./miki.sh goodbye 이러한 명령어를 입력하게 된다면

You said goodbye 가 출력된다. 그 이유는 $1는 첫번째 인자를 뜻하며 goodbye가 해당 쉘스크립트 바로 뒤에온 첫번째 인자이기 때문이다.

놀라운점은 $0 도 있는데 이는 해당 명령어 자리까지 첫번째 인자로 인지하는것이다

즉 echo "You said $0 $1" 으로 되어있다면
You said ./miki.sh goodbye 가 출력되는 것이다.

그리고 이러한 인자들을 환경변수라고 한다.
또한 이러한 환경변수들은 스크립트파일 안에서만 동작하는것이 아니라
명령어를 동작시키는 쉘 안에서 동작하는것이기 때문에 $0 만 출력할경우 해당 명령어를 실행하는 쉘의 경로를 출력하게된다. 왜냐하면 해당 터미널이 해당 쉘을 이용해 명령어를 출력하고있기 때문이다.

즉 $0 만 입력하면 첫번째 환경 변수에 등록되있는 명령어가 출력되는데 이때 해당 터미널에서 실행되는 쉘이 첫번째 환경변수가 된다. 즉 절대경로의 쉘을 출력한것과 같은 결과를 출력하기 때문에 자동으로 쉘이 변경되는것이다.

수고하셨습니다.

profile
개발&해킹 일지 작성

0개의 댓글