[Linux, Unix] export, echo 명령어 알아보기 export 그리고 echo 명령어 유닉스 환경에서 개발을 하다보면 export와 echo라는 명령어를 종종 사용하게 됩니다. 간단하게 정리하려고 합니다. 유닉스를 사용한다면 Bash, ZSH라는 이름을 많이 들어보셨을 텐데요. Bash와 Zsh는 쉘 스크립트 언어를 말합니다. 터미널을 키면 그 터미널이 동작하는 방식을 결정하는 것이 쉘 스크립트 언어입니다. 변수와 echo 우리가 알아볼 것은 운영체제 변수와 쉘 변수 입니다. 운영체제 변수는 우리 프로그램이 돌아가는 운영체제의 변수를 말하는 것이 쉘 변수는 터미널 내에서 변수를 말하는 것입니다. water = "삼다수" 명령어를 터미널에서 입력한다면 water라는 쉘 변수를 만드는 것이 됩니다. echo 명령어는 변수를 출력하는 프린트 함수인데요. 다음과 같이 입력하면 water에 저장된 값을 터미널에 출력합니다. 만약 $를 빼고 출력한다면 문자열을 출력하는 것으로 받아들여 water를 그대로 출력하게 됩니다. echo $water unset water unset 명령어는 변수를 삭제하는 역할을 하지요. 내 컴퓨터가 어떤 쉘 스크립트 언어를 사용하는지 궁금하면 bash echo $SHELL 명령어를 통해서 어떤 쉘 스크립트 언어를 사용하고 있는지 알 수 있습니다. 지금까지의 변수들은 쉘 변수들을 다루어 보았구요. 이제 운영체제 변수에 대해서 알아보도록 할게요. env 위의 명령어를 입력하게 되면 운영체제 변수들을 출력하게 됩니다. 모든 프로그램은 운영체제위에서 돌아가기 때문에 운영체제 변수를 다른 말로 환경변수라고도 합니다. export export 명령어를 통해서 쉘 변수를 환경변수로 저장할 수 있는데요. export water 터미널에 위 명령어를 입력하고 env 라고 입력하면 환경변수 목록에 water가 추가되었음을 확인할 수 있습니다. 하지만 이
컴퓨터는 단지 숫자다 :: 2. 부동 소수점 반올림과 Rounding 컴퓨터는 단지 숫자다 :: 근사와 Rounding 부동 소수점 표현법 이전 포스팅 보기 서론 프로그래밍 언어는 어떤 언어든지 완전하지 못하다. 이번 파트에서는 프로그램 언어가 가지는 태생적인 결함 중에서 근사에 대한 얘기를 해보려고 한다. 플라톤은 자신의 철학 사상을 얘기하면서 '이데아’를 주장하였다. 사람이 그린 어떤 삼각형도 모든 내각의 합이 결코 정확한 180도가 될 수 없지만 세상 밖에서는 모든 내각의 합이 정확히 180도인 삼각형의 원형이 존재한다는 사상이었다. 컴퓨터마저도 수를 표현함에 있어 '이데아’를 실현하지는 못한다. 예를 들어 0.1이라는 수를 컴퓨터는 정확히 표현할 수 없어 0.10000000000000000555111512... 이라는 값으로 저장한다. 정밀도에 따라 32비트 혹은 그 이상이 될 수 있겠지만 중요한 것은 컴퓨터도 때로는 정확한 값을 저장할 수 없다는 말이다. 이러한 오차는 별 것 아니라고 생각할 수 있겠지만 제대로 컨트롤 하지 못하는 수의 오차는 생각보다 심각한 문제를 일으키기도 한다. 1991년 2월 25일 1차 걸프 전쟁 기간중 사우디아라비아 Dharan에 위치한 미국 패트리엇 미사일 부대는 날아오는 이라크의 스커드 미사일을 격추하는 데 실패해 28명의 대원이 사망 했다. 미국 조사위는 이 실패에 관해 상세한 조사를수행한 결과 수치 계산의 부정확성이 주요 원인이라는 결론을 내렸다. 패트리엇 시스템은 내부적으로 0.1초마다 증가하는 카운터가 있었고 0.1초를 내부적으로 24비트에 저장해 근사값으로 더하고 있었다. 이 때 0.1초의 오차는 2 − 2 0 × 1 1 0 2^{-20}\times{1\over10} 2 − 2 0 × 1 0 1 이었고 약 100시간동안 패트리어트 시스템이 동작하고 있었고 스커드 미사일이 2000m/s로 날아오고 있었다. 그 결과 격추 시스템의 오차는 약 6
댓글
댓글 쓰기