쉘 변수의 값
지금까지 변수의 값을 꺼내기 위해 $varname을 사용했습니다.
하지만 보다 일반적인 방법은 ${varname}을해주어야 하는 것입니다. 이는 불필요한 에러를 줄여주기 때문입니다.
문자열 연산자를 이용하여 변수의 값을 다양한 방법으로 조작
- 변수가 존재하는지 확인
- 변수의 default값을 설정
- 존재하지 않는 변수를 사용하려는 오류 적절히 처리
- 변수 값의 일부를 패턴 매칭을 통해서 제거
변수 var이 존재하고 null이 아니면 word를 리턴 아니면 null을 리턴
4의 인덱스에서 이후 4번값까지 출력
실습1
하지만 이 경우 문자로 해석하기 때문에 정상적으로 해석이 안됩니다.
이렇게 sort를 하면 됩니다.
이렇게 하면 역순으로 출력이 됩니다.
위에서 20개만 출력하도록 할 수 있습니다.
문자열 연산 : Pattern Matching
${var#pattern}
$var 문자열의 앞에서부터 pattern을 매칭시키는 가장 짧은 서브스트링이 있으면, 그것을 제거한 나머지 부분을 리턴
${var##pattern}
$var 문자열의 앞에서부터 pattern을 매칭시키는 가장 긴 서브스트링이 있다면, 그것을 제외한 나머지 부분을 리턴
${var%pattern}
$var문자열 뒤에서부터 pattern을 매칭시키는 가장 긴 서브스트링이 있다면, 그것을 제거한 나머지 부분을 리턴
${var%%pattern}
환경변수 PATH에 포함된 디렉토리들을 한 줄에 하나씩 프린트하기
콜론을 -로 바꿔주는 것을 볼 수 있습니다.
치환하고 다음 라인으로 넘기는 것을 볼 수 있습니다. e를 붙이면 저것을 문자로 인식하는 것이 아닌 해석을 하는 것을 볼 수 있습니다.
명령어 대입
명령어를 실행하고 그 결과를 이렇게 집어넣는 것입니다.
$(pwd)는 현재 디렉토리를 변수처럼 만들어줍니다.
content라는 변수를 설정해 변수처럼 쓰는 것을 볼 수 있습니다. $(<파일명)은 파일명의 내용이 됩니다. 단 개행문자를 제거됩니다.
v $(grep[ -| 'command substitution' ch*)
이것은 grep 명령의 -| 옵션은 패턴이 매칭되는 파일명만을 출력합니다(매칭 라인을 출력하지 않음)
큰따음표 같은 경우 정상적으로 $(ls) 를 실행하는 것을 볼 수 있습니다.
이는 ls 명령어의 실행 결과(즉, 현재 디렉토리에 있는 파일 목록)를 가져와 다른 명령어에 사용하거나 변수로 저장하는 역할을 합니다.
실습
'IT 프로그래밍 > 오픈소스소프트웨어' 카테고리의 다른 글
[오픈소스소프트웨어] chap10.1 C, C++ 개발 (0) | 2024.10.14 |
---|---|
[오픈소스소프트웨어] chap 9.5 파일 속성 검사 (0) | 2024.10.14 |
[오픈소스소프트웨어] 9.1 쉘 프로그래밍 (0) | 2024.10.13 |
[오픈소스소프트웨어] 8.2 chmod, umask (0) | 2024.10.13 |
[오픈소스소프트웨어] 7.3 파일 접근 관리 (0) | 2024.10.13 |