[6] 대체 - 부분 2

6356 단어 shell직장레저
우리 의 마지막 과정 에서 우 리 는 변 수 를 만 들 고 대체 하 는 방법 을 배 웠 다.이 과정 에서 우 리 는 이 아 이 디 어 를 전개 하여 우리 가 어떻게 명령 을 통 해 결 과 를 대체 하 는 지 보 여줄 것 이다.
스 크 립 트 를 계속 떠 나 면 간단 한 몇 줄 의 텍스트 를 포함 하 는 HTML 을 만 들 수 있 습 니 다.
환경 변수 HOSTNAME
가 져 온 호스트 이름 입 니 다.다음 단 계 는 사용자 가 하 는 것 을 제외 하고 페이지 에 시간 스 택 을 추가 합 니 다.
#!/bin/bash
    
    

    
      
    
# make_page - A script to produce an HTML file
    

    
      
    
title="System Information for"
    

    
      
    
cat <<- _EOF_
    
    <HTML>
    
    <HEAD>
    
        <TITLE>
    
        $title $HOSTNAME
    
        </TITLE>
    
    </HEAD>
    

    
      
    
    <BODY>
    
    <H1>$title $HOSTNAME</H1>
    
    <P>Updated on $(date +"%x %r %Z") by $USER
    
    </BODY>
    
    </HTML>
    
_EOF_
    

보시 다시 피 우 리 는 다른 환경 변 수 를 사 용 했 습 니 다. USER
사용자 이름 을 얻 습 니 다.그리고 우 리 는 이 이상 한 표 시 를 사용 했다.
$(date +"%x %r %Z")
문자
”$()”
알리다.
shell
,

첨부 된 명령 의 결 과 를 대체 합 니 다.

.우리 각본 에서 우 리 는
shell
현재 날짜 와 시간 을 표현 하 는 명령 삽입
date +"%x %r %Z"
라 는 결과 가 나 왔 다.명령 하 다.
date
많은 특성 과 형식 옵션 이 있 습 니 다.그것들 을 모두 보 려 면 이것 을 시도 해 보 세 요.
[me@linuxbox me]$
date --help | less
더 오래된, 교 체 된 문법 이 '$' 에 대한 것 을 의식 해 야 합 니 다.
명령
부 호 를 사용 하 겠 습 니 다.
.이 더 오래된 형식 은 최초의 Bourne shell (sh) 과
일치했어내 가 여기 서 bash 를 가 르 친 이후로
나 는 더 이상 이런 낡은 형식 을 사용 하지 않 을 것 이다.
그리고
기호 가 매우 못 생 겼 다.Bash shell
완전 지원
쓴 스 크 립 트 이기 때문에 다음 형식 은 같 습 니 다.
$(command)
`command`
--help
기타 기교
당신 은 어떻게 명령 을 공부 합 니까?그럼 Linux Command. org 말고
그것들 을 읽 으 면 다른 의문 이 있 는 명령 에 man 을 사용 할 수도 있 습 니 다.
페이지LinuxCommand.org
슈퍼 맨 페이지
완전한 유행 리 눅 스 를 포함 하고 있 습 니 다.
판본근 데 명령 이 없 으 면 man.
페이지 는 어때요?
일단 해 봐 야 지. - help.
.모든 도 구 는 자유 소프트웨어 재단 에서 선택 한 GNU 를 실행 합 니 다.
항목 작성.
명령 옵션 의 요약 을 얻 으 려 면 입력 만 하면 됩 니 다:
[me@linuxbox me]$
command
�Chelp
많은 명령
GNU
도구
�Chelp
옵션 이나 잘못된 옵션 으로 보고 같은 유용 한 메 시 지 를 표시 합 니 다.
하면, 만약, 만약...
옵션 의 결 과 는 화면 에 불완전 하 게 표 시 됩 니 다. less 를 사용 하 십시오.
이 파이프 명령 은 이렇게:
[me@linuxbox me]$
command
--help | less
일부 명령 은 도움말 정보 가 없 거나 사용 하지 않 습 니 다 -- help
인용 하 겠 습 니 다.이런 기괴 한 명령 에 대해 나 는 이 기 교 를 사용한다.
우선, 실행 가능 한 파일 에 저 장 된 주 소 를 찾 습 니 다.
집적이것 은 간단하게 입력 할 수 있 습 니 다:
[me@linuxbox me]$
which command
Which
명령 은 실행 가능 한 파일 의 경로 와 파일 이름 을 알려 줍 니 다.다음은 strings 를 사용 합 니 다.
실행 가능 한 파일 과 함께 텍스트 를 삽입 할 수 있 음 을 명령 합 니 다.하면, 만약, 만약...
프로그램의 내부 에서 다음 과 같이 할 수 있 습 니 다.
[me@linuxbox me]$
which bash
/bin/bash
[me@linuxbox me]$
strings/bin/bash
Strings
명령 은 임의의 프로그램 내부 의 읽 기 쉬 운 내용 을 표시 합 니 다.이것 은 저작권 표지, 오류 정보, 도움말 텍스트 등 을 포함 할 수 있 습 니 다.
마지막 으로 궁금 하 다 면 명령 원본 을 가 져 와 읽 으 세 요.명령 에 의 해 작 성 된 프로그램 언어 를 완전히 이해 하지 못 하 더 라 도 원본 코드 에 있 는 주석 을 읽 으 면 소중 한 통찰력 을 얻 을 수 있 습 니 다.
명령 의 결 과 를 변수 에 할당 합 니 다.
명령 의 결 과 를 변수 에 할당 할 수도 있 습 니 다.
right_now=$(date +"%x %r %Z")
변 수 를 끼 워 넣 을 수도 있 습 니 다.
right_now=$(date +"%x %r %Z")
time_stamp="Updated on $right_now by $USER"
상수
이름 변수의 건의 와 같이 변수의 내용 은 변화의 지 배 를 받는다.이것 은 바로 당신 의 스 크 립 트 가 실행 되 는 과정 에서 변수의 내용 이 당신 이 한 일 에 의 해 바 뀔 수 있 기 를 기대 하 는 것 입 니 다.
다른 한편, 가치 가 있 을 수 있 으 며, 일단 설정 하면 다 시 는 바 뀌 지 않 을 것 이다.이것들 은 상수 라 고 불 린 다.내 가 이것 을 언급 한 것 은 프로그램 에서 보편적 인 생각 이기 때문이다.대부분의 프로그램 언어 는 변 하지 않 는 가 치 를 지원 하기 위해 특별한 편 의 를 가지 고 있다.Bash
이런 능력 도 있 지만, 솔직히 나 는 그것 을 사용 하 는 것 을 본 적 이 없다.반면 하나의 수치 가 상수 로 확정 되면 대문자 로 간단하게 부 여 됩 니 다.환경 변 수 는 보통 상수 로 여 겨 진다.상수 처럼 환경 변 수 는 협정 에 따라 대문자 로 부여 된다.다음 스 크 립 트 에서 이 협정 을 사용 하 겠 습 니 다.
�C
상수 가 대문자 이 고 변 수 는 소문 자 입 니 다.
그래서 우리 가 아 는 모든 일, 우리 의 절 차 는 이렇게:
#!/bin/bash
    

    
      
    
# make_page - A script to produce an HTML file
    

    
      
    
TITLE="System Information for $HOSTNAME"
    
RIGHT_NOW=$(date +"%x %r %Z")
    
TIME_STAMP="Updated on $RIGHT_NOW by $USER"
    

    
      
    
cat <<- _EOF_
    
    <HTML>
    
    <HEAD>
    
        <TITLE>
    
        $TITLE
    
        </TITLE>
    
    </HEAD>
    

    
      
    
    <BODY>
    
    <H1>$TITLE</H1>
    
    <P>$TIME_STAMP
    
    </BODY>
    
    </HTML>
    
_EOF_
    

좋은 웹페이지 즐겨찾기