궁금증 연구소

안녕하세요. 궁금증연구소 입니다.

오늘 포스팅 주제는 "리눅스 변수 사용 주의할점~!" 입니다.

 

해당 포스팅은 MIT 대학의 opensource 강의를 참고 하였음을 알려드립니다.

MIT linux 무료강의
echo 사용시 주의할점

리눅스 환경에서 foo=bar 라고 변수를 선언하면,

echo $변수명 을 통해 변수의 내용을 뽑아 낼수 있다.

주의 할점은 

 

쌍따옴표, 홑따옴표

 

쌍따옴표를 쓰면 변수값을 그래도 받아오지만 홑따옴표를 쓰면 $를 문자 그대로 인식해 버린다.

이게 헷갈리는 이유는 그냥 문자열을 echo로 출력할때는 "" 쌍따옴표와 홑따옴표 모두 동작을 하기 때문이다.

 

둘다 동작함

위와 같이 둘다 동작한다. 파이썬에서도 ""와 ''를 혼용해서 사용하기 때문에 혼동할 수 있다. 

C언어에서도 "" 와 ''은 다르게 취급하기 때문에 가급적 쌍따옴표로 쓰는것을 습관 들이는게 좋을거 같다.

 

 

 

 

 

변수 선언시 주의할점

 

변수를 선언할때에는 띄어쓰기에 주의해야 한다. 위와 같이 띄어쓰기 없이 변수선언을 해주어야 에러가 발생하지 않는다.

이유는 리눅스가 명령어와 인수를 인식할때 공백도 하나의 문자로 인식되기 때문이라고 한다. 공백은 ASCII code에 따르면 문자열 32로 인식된다. 따라서 공백을 습관적으로 띄어서 리눅스 명령어를 사용하면 에러가 발생할 수 있다.

 

!! 기능 활용하기
mkdir /mnt/new
cannot create directory ‘/mnt/new’: Permission denied
sudo !!

위와 같이 /mnt/ 안에 new 라는 파일을 일반사용자 아이디로 만들려고 하면 권한이 없어서 permission denied 오류가

발생한다. 그때 sudo !! 을 쳐주면 앞에 쳤던 명령어가 !! 자리에 자동으로 써지게 된다.

 

 

이전 명령어에 대한 에러코드 보기 : echo $?

echo $?

이전 명령어가 command not found 에러를 보여준다.  echo $?를 누르면 이전 명령어의

에러코드를 보여준다. 제대로 된 명령어는 0을 출력한다.

 

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading