shell 파라미터 치환

${ 파라미터 } ${Parameter}는 $Parameter와 같은 표현으로 주로 붙여쓴 경우에 구분을 위해서 사용하는 표기로 알려져 있다. your_id=${USER}-on-${HOSTNAME} echo “$your_id” # echo “Old \$PATH = $PATH” PATH=${PATH}:/opt/bin echo “New \$PATH = $PATH”

shell – expansion

셸 스크립트를 사용하면서, 가장 헷갈리는 부분 중 하나가 문자열 값들이 어떻게 확장되는가 하는 점이다. 여기서는 조금 자세하게 엔터키를 누르는 그 순간에 어떤 ‘마법’이 벌어지는지 보려고한다. 몇 가지 간단한 예제들에서도 이 현상은 우리가 알지 못하는 사이에 쓰고 있는 셈인데, 이를테면 echo 같은 명령에서 이것이 일어난다. 확장 (expansion) 명령을 입력하고 엔터를 누르는 매 순간에 bash는 우리의 명령을 수행하기 이전에 몇 가지 텍스트 관련 처리를 먼저 하게 된다. 이미 echo * 등의 명령에서 어떻게 단순한 글자가 변경되는지를 본 적이 있다. 예를 들어 *는

쉘에서 파일 디스크립터를 사용한 필터 구현

쉘에서 파일 디스크립터 사용하기 입출력을 반복하는 형태의 커뮤니케이션을 구현하기 위해서는 한 쌍의 FIFO 파이프를 만들어서 사용한다. 파이프는 mkfifo 명령을 통해서 이름이 붙은 파이프를 만들 수 있다. (이름이 붙은 파이프라는 것은 결국 임시파일이다.) mkfifo /tmp/infifo mafifo /tmp/outfifo 입력을 sed를 이용해 필터링하여 출력하는 예제는 다음과 같다.